Auf MAX_FILE_SIZE
diese lesen:
... An http://pk.php.net/manual/en/features.file-upload.post-method.php und gleichwertigen Stellen in anderen Formaten, werden erklärt, dass Browser den Wert eines MAX_FILE_SIZE Formularfeldes nimmt in Konto.
Diese Informationen auf dem Netz an anderer Stelle wiederholt wird und in Büchern, aber erscheint aus der PHP-Dokumentation stammen (es erscheint nicht in Bezug auf anderen serverseitige Technologien).
Es gibt nichts, an der ein HTML, HTTP oder ähnlichen Spezifikationen um anzuzeigen, dass dies der Fall ist (insbesondere RFC 1867, die Datei eingeführt ist Uploads zu HTML nicht nicht erwähnt, so ist es nicht selbst ein Fall eines Kludges , der im ersten RFC erwähnt und dann fallengelassen wurde) macht es auch nicht Sinn im Zusammenhang mit den HTML-Spezifikationen (es gibt keine Beziehung zwischen diesem bestimmten versteckten Eingang und der Dateieingabe) . Die einzigen Aussagen über versteckte Felder, die ich in einer von ihnen war Warnungen in den Sicherheitsüberlegungen Abschnitte gegen User-Agents basieren alle dateibezogenen Vorgänge auf etwas erwähnt in einem versteckten Feld gefunden.
Keine Browser scheint dies als eine "Erweiterung" durchzuführen. In der Tat, gibt es möglicherweise andere mögliche Bedeutungen für ein verstecktes Feld mit dieser Name in einer Anwendung, die mehrere Datei-Uploads behandelt, würde es haben, um eine Design-Schwachstelle zu sein, die jeder tat.
Ich unterbreite, dass es keinen solchen Mechanismus in Mainstream-Browsern gibt (falls überhaupt ) und in der Tat nicht sein sollte. Der Verweis darauf sollte von Dokumentation fallengelassen werden.
Ich würde weiter empfehlen, dass, da diese Idee von dieser Dokumentation an anderer Stelle propagiert wurde, dass ein Hinweis darüber nicht funktioniert sollte hinzugefügt werden.
Wenn ein Mechanismus erforderlich ist oder schneller Umgang mit dieser Art von Datei gewünscht Umgang mit Problem dann erfordert es Funktionalität PHP zu ermöglichen Ströme abzufangen, bevor Anfrage Fertigstellung hochgeladen werden, die völlig anders sein würde, wie diese Dokumentation vorschlägt es behandelt werden sollten, selbst wenn es wahr ...
war
der Code unten kam aus SWFUpload php Umsetzung:
// Check post_max_size (http://us3.php.net/manual/en/features.file-upload.php#73762)
$POST_MAX_SIZE = ini_get('post_max_size');
$unit = strtoupper(substr($POST_MAX_SIZE, -1));
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));
if ((int)$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) {
header("HTTP/1.1 500 Internal Server Error");
echo "POST exceeded maximum allowed size.";
exit(0);
}
// Validate the file size (Warning the largest files supported by this code is 2GB)
$max_file_size_in_bytes = 2147483647;
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
if (!$file_size || $file_size > $max_file_size_in_bytes) {
HandleError("File exceeds the maximum allowed size");
exit(0);
}
+1; gute Untersuchung. – strager
'Sie müssen überprüfen, die hochgeladene Datei war weniger als MAX_FILE_SIZE mit PHP' Nein, Sie nicht. Einfach dieses nutzlose Feld loswerden –
"erfordert Funktionalität, damit PHP Streams abfangen kann, die vor der Vervollständigung der Anfrage hochgeladen werden" -> PHP kann die Anfrage abfangen, wenn ihre Länge das in 'post_max_size' angegebene Limit überschreitet 'Content-Length', und von modernen Browsern scheint nur Opera diesen Header zu senden. –