Code Problem

maxiwagner

Gesperrt
Also ich habe ein Datei Upload System erstellt und da können Datei höchstens die Größe von 4Mb haben, es klappt auch jedoch wenn ich zum Test eine Datei mit 20 MB hochladen will erscheint nicht meine Meldung.
PHP:
<?php
$Dateibyte=$_FILES['datei']['size']
if($Dateibyte < 4096000)
{
   move_uploaded_file($_FILES['datei']['tmp_name'], "Upload/".$_FILES['datei']['name']);
  $Link="http://localhost/HA%20Homepage/Datei%20Upload/Upload/".$_FILES['datei']['name'];
   $datei=fopen("Downloadlink.txt","a+");
   $nl = chr(13) . chr(10);
   fwrite($datei, "$Link$nl");
   fclose($datei);
   echo "Der Downloadlink: $Link";   
}
else
{
    echo "Die Datei konnte nicht Hochgeladen werden, da sie Größer als 4 Mb ist.";
}
?>

?

Danke für Antworten

Maxi
 
Nein, da fehlt kein Semikolon.


Hast du mal testweise $Dateibyte ausgegeben per echo() oder print()?
 
Versuch's mal dieser Datei. :)
Ich weiss aber nicht ob sie auch wirklich funktioniert. Habe sie mal gesehen und gedacht, ev. kann man die ja brauchen. :D

PHP:
<?
if($sent): #Abfrage ob Upload gestartet
?>
<?
#Die Variable $MAX_FILE_SIZE könnte hier benutzt werden um
#die Dateigröße zu beschränken. Beim Überschreitet der 
#Maximalen Größe würde der Upload-File verworfen werden.
#Diese variable steht in PHP zur Verfügung.
#Sie ist in den meisten Fällen Providerseitig festgelegt
#auf 2 MB. Dieser wert stellt die maximale Größe dar.
#Wenn Du diesen Wert größer setzt, hat die Providereinstellung Vorrang.

#$MAX_FILE_SIZE=10000;

# Würdest Du diese Variable setzen und das Upload übersteigt den wert
# hatte die Variable $datei dann den Wert "none"
# Da wir aber hier im Beispiel eine gezielte Meldung ausgeben wollen,
# benutzen wir eine andere Variable um die Filegröße zu begrenzen 


$maxgroesse=80000; # max Größe hier jetzt 80kbyte

# Verzeichnis angeben in das die Datei abgelegt werden soll
# dieses Verzeichnis muß existieren
$pfad="_images/adressbuch/userbilder/";  # hier probe

#Variable für Hinweistext setzen

$hinweis="";
# Prüfvariable  

$speichern=true;

# Es wurde keine Datei übertragen oder die vom
#Provider vorgegebene maximale Filegröße wurde überschritten
if($datei=="none")
{
$hinweis="Es wurde keine Datei ausgewählt";
$speichern=false; #Prüfvariable auf false setzen
}
else
{

# $datei_size ist eine reservierte Variable(xxx_size)
# der Vorsatz datei ist dabei durch den Namen des Filefeldes der Form
#bestimmt. Hieße dein Filefeld "egal" wäre der Name der Variablen
# $egal_size
if($datei_size>$maxgroesse) #von Dir vorgegebene Filegröße überschritten
{
$hinweis="Übertragene Datei zu groß. Max. Größe: ".$maxgroesse." kbyte";
$speichern=false;
}

# $datei_type ist eine reservierte Variable(xxx_type)
# der Vorsatz datei ist dabei durch den Namen des Filefeldes der Form
#bestimmt. Hieße dein Filefeld "egal" wäre der Name der Variablen
# $egal_type und gibt die Art des Uploadfiles zurück:
# Beispiele:
#text/html-->htm/html-Dokument
#application/x-zip-compressed -->Zip-Archiv
#image/pjpeg -->jpg-Grafik
#application/x-javascript -->Javascript-Datei,xxx.js
#image/gif -->gif-Grafik
#text/plain -->txt-Dokument
#image/x-png -->png-Grafik
#image/bmp -->bmp-Grafik
#application/octet-stream--> (z.b exe,wav usw.)

#Wir wollen hier im Beispiel nur 
#jpg/png oder gif -Files zulassen
#also basteln wir entweder eine entsprechende if-abfrage 

if($datei_type!="image/pjpeg" and $datei_type!="image/x-png" and $datei_type!="image/gif" and $datei_type!="image/bmp")

#dies wiederum beschränkt und aber auf die o.g. Typenunterscheidungen
# Wir machen das hier anders. Wir zerlegen den Dateinamen und 
#extrahieren die entsprechende Datei-Endung.
#So können wir gezielt z.B. auch eine WAV-Datei abfragen
#Dafür benutzen wir die reservierte Variable "xxxx_name"
#in unserem Fall "$datei_name" 

$dattyp=""; #eigene Variable für Dateityp
$dattyp=split("\.",$datei_name);
$dattyp[count($dattyp)-1];
$endung=strtolower($dattyp[count($dattyp)-1]);
if($endung!="jpg" and $endung!="png" and $endung!="gif" and $endung!="bmp")
{
$hinweis="Datei enthält kein gültiges Grafikformat";
$speichern=false;
}
}

#jetzt fragen wir die Prüfvariable $speichen ab.
#Hat unsere Datei alle Prüfungen überstanden 
#speichern wir diese ab. 

#Achtung: Der folgende Code speichert die Datei unter Ihrem Originalnamen ab
#Wenn mehrere Nutzer eine Datei mit gleichem Namen speichern überschreiben sich
#diese Datein gegenseitig.
#Um das zu verhindern benötigst Du zusätzlichen Code.
#je nachdem welche Variante du benutzen möchtest, entferne 
#die Kommentarzeichen "#" vor dem entsprechende Code und
#kommentiere den jeweils anderen aus. 

##############
#Code-block zum Speichern unter dem Original-namen
#ist hier auskommentiert
#ab if die Kommentarzeichen ggf. entfernen
if($speichern)
{
$fdatei=$datei;
$fdatei_name=$datei_name;
#copy($fdatei,$pfad.$fdatei_name); 
echo "Datei wurde gespeichert unter: ".$pfad.$fdatei_name."<br><br>"; 
echo "<a href='".$PHP_SELF."'> zurück zum Uploadfomular</a>";
exit;
}

## Bis zur Klammer die Kommentarzeichen entfernen.

# Code-Block für das abspeichern unter einem 
# anderen, eindeutigen Namen  
#Ab if ggf. auskommentieren
#if($speichern)
#{
#$fdatei=$datei;
#Dateinamen aus "d_" und "function time" und $endung zusammensetzen
#$fdatei_name="d_".time().".".$endung;
#copy($fdatei,$pfad.$fdatei_name); 
#echo "Datei wurde  gespeichert unter: ".$pfad.$fdatei_name."<br><br>"; 
#echo "<a href='".$PHP_SELF."'> zurück zum Uploadfomular</a>";
#exit;
#}

echo "Fehler:".$hinweis."<br>"; #Fehlermeldung schreiben.
?>

<?
endif
?>

<form action=<? echo $PHP_SELF ?> ENCTYPE="multipart/form-data" method="post"> 
<input type="hidden" name="sent" value="ok"></input>
Bitte die Upload-Datei wählen:<br>
<input type="file" name="datei"></input><br> 
<input type="submit" name="send" value="upload"></input> <br>
(es werden nur bmp/gif/jpg/png-Dateien mit max. 50 kb zugelassen).
</form>
 
Dein Skript ist veraltet SiMpLy, da es nur mit aktiviertem [phpf]register_globals[/phpf] arbeitet, was aber eine sicherheitskritische Einstellung ist und deshalb unter allen Umständen deaktiviert sein sollte.
 
ah okey, danke maxiwagner .. Das wusste ich nicht.
Wie gesagt, das habe ich mal irgendwo gefunden. Ich glaube sogar hier auf tutorials.de, aber bin mir nimmer sicher. *hehe*


mfg SiMpLy
 
mhm also ich glaube des liegt dann eher am Uploadlimit des Servers.... 20mb sind wohl etwas viel. Du liest die Dateigrösse ja erst aus nachdem die Datei hochgeladen wurde, dazu kommt es aber garnicht erst weil der Server schon vorher aussteigt ...

Also vermute ich jedenfalls, mann müsste die Fehlermessage von php einfach abfangen und anders verarbeiten.

Oder liege ich da falsch 0o


mfg
blue
 
mhm also ich glaube des liegt dann eher am Uploadlimit des Servers.... 20mb sind wohl etwas viel. Du liest die Dateigrösse ja erst aus nachdem die Datei hochgeladen wurde, dazu kommt es aber garnicht erst weil der Server schon vorher aussteigt ...

Also vermute ich jedenfalls, mann müsste die Fehlermessage von php einfach abfangen und anders verarbeiten.

Oder liege ich da falsch 0o


mfg
blue

Nur wie mach ich des?
Des hab ich auf meinem Computer gemacht mit XAMPP!
 
Zurück