Mehrere Bilder hochladen

Mavericklp

Erfahrenes Mitglied
Moin moin zusammen,
ich hoffe ich bin hier richtig.

Ich hab nen Script geschreiben, mit dem ich mehrere Dateien gleichzeitig hochladen möchte. Mit Javascript sollen neue Zeilen hinzugefügt werden. Die hochgeladenen Bilder werden in PHP umgewandelt und verkleinert.

An sich funktioniert auch alles ohne Probleme. Aber ich kann nicht mehr als ca 6 MB hochladen. Sobald ich versuche ca 6 oder mehr MB hochzuladen wird die selbe Seite aufgerufen. Ohne das etwas gemacht wird.

Der Javascript teil:
Code:
<script language="javascript">
   var files_count = 3;
   function addFileField (){
      if (files_count >= 11){
         alert('Es sind nur 10 Bilder gleichzeitig Erlaubt.');
         return false;
      }
      var parent = document.getElementById('fields');
      var text = document.createTextNode(files_count + ".");
      var file = document.createElement("input");
      file.setAttribute("name", "datei[]");
      file.setAttribute("type", "file");
      var alt = document.createElement("input");
      alt.setAttribute("name", "alt[]");
      alt.setAttribute("type", "text");
      
      var cell1 = document.createElement("td");
      var cell2 = document.createElement("td");
      var cell3 = document.createElement("td");
      
      var row = document.createElement("tr");
      
      cell1.appendChild(text);
      cell2.appendChild(file);
      cell3.appendChild(alt);
      
      row.appendChild(cell1);
      row.appendChild(cell2);
      row.appendChild(cell3);
      
      parent.appendChild(row);

      files_count = files_count+1;
   }
</script>
Der HTML Teil:
HTML:
<table id="fields">
   <tr><td>&nbsp;</td><td>Datei</td><td>Beschreibung</td></tr>
   <tr><td>1.</td><td><input type="file" name="datei[]" /></td><td><input type="text" name="alt[]" /></td></tr>
   <tr><td>2.</td><td><input type="file" name="datei[]" /></td><td><input type="text" name="alt[]" /></td></tr>
</table>
<br /><br />
<input type="submit" name="submit" value="Hochladen" />
Der Generierte Code bei 3 oder 4 Zeilen:
HTML:
<form action="index.php?site=BilderNeu" method="post" enctype="multipart/form-data" name="myform">
    <input name="Albumwahl" value="1" checked="checked" type="radio"> 
    <select name="ID_Album">
        <option value="1001">Blumen</option><option value="1010">Comic</option>
    </select><br />
    <input name="Albumwahl" value="2" type="radio"> 
    <input name="Album" type="text"><br />
    <br /><br />
    Datei Upload <input onclick="addFileField();" value="Zusätzliches Feld" type="button"><br /><br />
    <table id="fields">
        <tbody>
            <tr><td>&nbsp;</td><td>Datei</td><td>Beschreibung</td></tr>
            <tr><td>1.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
            <tr><td>2.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
        </tbody>
            <tr><td>3.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
    </table>
    <br /><br />
    <input name="submit" value="Hochladen" type="submit">
</form>

<form action="index.php?site=BilderNeu" method="post" enctype="multipart/form-data" name="myform">
    <input name="Albumwahl" value="1" checked="checked" type="radio"> 
    <select name="ID_Album">
        <option value="1001">Blumen</option><option value="1010">Comic</option>
    </select><br />
    <input name="Albumwahl" value="2" type="radio"> 
    <input name="Album" type="text"><br />
    <br /><br />
    Datei Upload <input onclick="addFileField();" value="Zusätzliches Feld" type="button"><br /><br />
    <table id="fields">
        <tbody>
            <tr><td>&nbsp;</td><td>Datei</td><td>Beschreibung</td></tr>
            <tr><td>1.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
            <tr><td>2.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
        </tbody>
            <tr><td>3.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
            <tr><td>4.</td><td><input name="datei[]" type="file"></td><td><input name="alt[]" type="text"></td></tr>
    </table>
    <br /><br />
    <input name="submit" value="Hochladen" type="submit">
</form>

Schon einmal vielen Dank für eure tips.
 
Hi

Thema zu PHP verschoben.

Schau mal über phpinfo() nach, welche Werte
post_max_size, upload_max_filesize, max_input_vars, max_file_uploads
haben.
 
post_max_size = 8M
upload_max_filesize = 10M
max_input_vars = 1000
max_file_uploads = 20
memory_limit =128M

Wenn ich das richtig verstehe kann ich über die Post Variable nicht mehr als 8Mb hochladen mit 20 gleichzeitigen uploads. aber eine Datei darf bis zu 10mb groß sein?
 
Ja genau. Sinnlose Einstellungen.

Die Werte müssen eben höher gestellt werden, wer immer dafür zuständig ist.
Und post_max_size im Idealfall höher als upload_max_filesize.
 
Bis wie viel Mb kann man dort einstellen, ohne "angst" haben zu müssen, das dort etwas passiert?

post_max_size = 40M
upload_max_filesize = 10M
max_input_vars = 1000
max_file_uploads = 20
memory_limit =128M

Hab jetzt an diese Einstellungen gedacht.

(das ganze läuft über einen VServer bei Host Europe. 2 bis 4GB Ram 1,5 GHz)
 
Die Werte sollten kein Problem sein.

Zum (immer noch möglichen) Problem, dass Uploads abgeschnitten werden könnten (20*10 > 40):
Laut der Doku sind in dem Fall $_POST und $FILES leer.

Wenn man ins Formular noch ein hidden-Feld mit einem fixen Wert reintut
(und das dann über POST mitgesendet wird) kann man das auf die Weise in PHP ermitteln.
Also wenn der Hiddenwert angekommen ist, aber sonst nichts da ist,
hat der Benutzer keine Datei hochgeladen.
Wenn der Hiddenwert auch nicht da ist, hats ein (Größen-)Problem gegeben.
 
Die größe wären 10 mal 10. Wollte den aber auf 40MB beschränken, weil 4MB durchschnitt pro Bild. mal 10 mögliche einträge (vom Formular bestimmt) sollte das reichen.

Wenn nicht nehme ich deinen 2ten Tipp.. Mit dem Hiddenfeld. Muss mir dann nur was einfallen lassen, wie ich das ordentlich auswerten kann, da ich alles in einer Datei auswerte. Bekomme ich aber irgend wie schon geregelt.

Vielen Dank für die Tips!!
 
Zurück