Bilder mit max 1MB hochladen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angabe
anwenden
auslese
benutzerfreundlichkeit
bestimmen
browser
code
datei
eingreifen
fehler
feld
festzustellen
formular
http
parameter
server
url
verarbeiten
verzichten
vorstellen
-
Hi,
würd gern Bilder mit einer MAX Große hochladen. Der Upload funzt bereits. Doch ich würd die größer der Datei bereits VOR dem Upload überprüfen...
Is das irgendwie möglich?
lg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
finch schrieb:
Is das irgendwie möglich?
Nein, wie soll das denn gehen? ...zumindest nicht per PHP!
Um die Datei verarbeiten bzw. irgendwas zu bestimmen muß die Datei zwingend zum Server übertragen werden, ob du diese dann ablehnst ist deine Sache.
Was ich mir evtl. noch vorstellen könnte, wäre dass man die Größe per JavaScript abfragen kann. Allerdings bin ich mir da unsicher, ob der Webbrowser einfach so auf meine Festplatte zugreifen darf. Ich glaube eher nicht!
Demzufolge dürfte vor der Nutzeraktion "Dateiübertragung" nichts zu prüfen sein
Grüßle -
Is mir klar das da per PHP eher nichts gehen wird, da ich es VOR eingreifen des php Skripts überprüfen möchte...
Doch überprüft ihr die Größe nie wenn ihr was hochlädt??
Das is doch echt kein exotisches Vorhaben von mir, kann mir nicht vorstellen, dass es hierfür keine Lösung gibt. -
Es gibt eine Lösung über ActiveX, allerdings kann das ja nur der IE...
Ansonsten gibt es keine Möglichkeit bereits vor dem Upload festzustellen, wie groß eine Datei ist. JS kann zwar auch die Funktion fileSize() anwenden, allerdings auch nur auf Dinge, die bereits auf dem Server sind.
Mehr dazu -
Klar geht das per PHP ...
Das einzig positive an PHP's Fileupload-Funktionialität ist die Möglichkeit, die Größe einer hochgeladenen Datei zu begrenzen.
Es muss lediglich ein zusätzlicher Parameter "MAX_FILE_SIZE" übergeben werden.
In einem HTML-Formular baut man den am besten als <input type="hidden" ... /> vor dem Dateiauswahl-Feld ein.
// ... $max_file_size = 1024 * 1024; // 1 MiByte $fitfn = 'uploadedfile'; // name-Attribut des Upload-Feldes ?> <form action="" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo($max_file_size); ?>" /> <input type="file" name="<?php echo($fitfn); ?>" size="20" maxlength="<?php echo($max_file_size); ?>" accept="text/html"> <hr /> <input type="submit" /> </form> <?php // ...
PHP bricht den Uploadvorgang sofort ab, wenn die hochzuladende Datei größer als der angegebene Parameter ist. Außerdem kannst du in $_FILES[$fitfn]['error'] den Fehler UPLOAD_ERR_FORM_SIZE auslesen und somit in deinem Script entsprechend reagieren. -
Die Angabe von Max Size im Formular wird nicht von jedem Browser unterstützt und spätestens wenn die Datei größer ist wie die MAX_UPLOAD_SIZE in der PHP.ini, wird der Upload eh abgebrochen. Einzige effektive Abfrage geht über Drittwerkzeuge wie Flash, Applets, ActiveX und Co.
-
Danke für die Antworten, werd die Große jetzt nicht überprüfen sondern nur die php.ini auf nen annehmbaren Wert stellen!
thx @ all -
Also um eine Benutzerfreundlichkeit zu wahren, würde ich eine Abfrage via PHP empfehlen. Ist zwar umständlicher und man kann den Traffic nicht vermeiden, aber bei Fehlern bekommt der Benutzer aber zumindest eine Fehlermeldung mit der er auch was anfangen kann und keinen unverständlichen Mist. In JavaScript würde ich sowas schon garnet machen, da viele mitlerweile schon auf JavaScript verzichten, bzw. es aus diversen Gründen deaktiviert haben (LayerAdds, etc.), außerdem brauchen JScripts meist sehr lange (je nach Browser).
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage