PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP & HTML: max_file_size input aus Konstante befüllen


Gast
2009-01-15, 16:24:15
hallo,
ich bastele an einem kleinen Upload-Skript. in mehreren tutorials habe ich jetzt gelesen, dass man am besten dem browser die maximale dateigröße in einem verstecktem input feld mitteilt. alle seiten die ich da gesehen hab, nutzen dafür einen vorgebenen wert. spricht irgendwas dagegen, anstelle dessen das feld von php mit der maximalen größe, die in der ini spezifiziert ist, zu befüllen?

danke!

rotalever
2009-01-15, 16:59:47
Eigentlich sollte da nichts dagegen sprechen. Aber probier es doch mal aus :smile:

Gast
2009-01-15, 18:22:55
Ok, jetzt hab ich ein anderes Problem: Es gibt ja die ganzen schönen Error-Codes, wenn ein Upload fehlschlägt. Wenn die Datei allerdings "post_max_size" wird das Skript komplett ohne POST-Daten aufgerufen. Kann man irgendwie feststellen, ob das passiert ist?

Gast
2009-01-15, 18:24:53
da fehlt ein "überschreitet" x)

rotalever
2009-01-15, 19:01:07
Meinst du so?

if (isset($_POST["bla"]))
{
//etc.
}

Sollte man sowieso immer machen, bei GET und POST.

Gast
2009-01-15, 20:28:06
Meinst du so?

if (isset($_POST["bla"]))
{
//etc.
}

Sollte man sowieso immer machen, bei GET und POST.

jo das ist schon klar, aber wenn man jetzt halt beispielsweise 3 upload felder im formular hat, und die überschreiten zusammen die max_post_size, löscht php einfach alle post daten und gibt einem überhaupt keine rückmeldung mit der man das behandeln kann... also nichtmal mehr der post eintrag vom button bleibt übrig...

Sephiroth
2009-01-15, 21:26:09
post_max_size integer
Setzt die maximal erlaubte Größe von POST-Daten. Diese Option betrifft auch den Datei-Upload. Um größere Dateien hochzuladen, muss der Wert größer sein als upload_max_filesize. Wenn eine maximale Speichergrenze während des Kompilierens aktiviert wurde, dann betrifft auch memory_limit den Datei-Upload. Allgemein sollte memory_limit größer als post_max_size sein. Wird ein integer-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben. Wenn die Größe der POST-Daten größer ist als post_max_size, werden $_POST und $_FILES leer sein. Dies kann auf verschiedene Weisen verfolgt werden, z.B. indem man die $_GET-Variable an das die Daten verarbeitende Skript weitergibt, d.h. <form action="edit.php?processed=1"> und daraufhin prüfen, ob $_GET['processed'] gesetzt ist.
So oder mit empty() resp. count() prüfen, ob $_POST leer ist.

Gast
2009-01-15, 21:48:33
Post ist leider in dem Fall komplett leer.
Ok, über get noch einen parameter zu übergeben ist natürlich auch eine lösung, um wenigstens rauszufinden wo man vorher war.

Gast
2009-01-15, 22:01:21
Kennt ihr eine Möglichkeit ohne Javascript Formulareingaben per get und Dateien per post mit einem gemeinsamen Button zu übertragen?

rotalever
2009-01-16, 14:22:39
Kennt ihr eine Möglichkeit ohne Javascript Formulareingaben per get und Dateien per post mit einem gemeinsamen Button zu übertragen?
Ja wie Sephiroth schon geschrieben hat. Halt method auf POST setzen und bei action den GET parameter direkt reinschreiben.