FileUpload Text + Files

matzseesi

Erfahrenes Mitglied
Hi Leute,

Ich habe soeben ne ganze Weile gegoogelt und im Forum gesucht doch ich bin nicht fündig geworden.
Ich habe ein Formular das wie folgt aussieht

Code:
<form method="POST" id="form_newalbum" action="modules/private/pictures/newalbum_post.inc.php" enctype="multipart/form-data"> 
  <fieldset style="display:block;">
    <legend>Daten</legend>
        <label for="name">Albumname:</label>
        <input type="text" name="name" id="name" maxlength="50" size="50"/>
        <label for="beschreibung">Beschreibung:</label>
        <textarea id="beschreibung" name="beschreibung" cols="100" rows="5"></textarea>     
        <label for="ort">Ort:</label>
        <input type="text" id="ort" name="ort" maxlength="50" size="50"/>        
        <label for="groupid">Gruppe w&auml;hlen:</label>
        <select name="groupid_list" id="groupid_list" size="1">
          <option value=""><--W&auml;hle eine Gruppe --></option>
        </select>
  </fieldset>
  <fieldset>    
    <legend>File</legend>
        <label for="pic">Bild upload:</label>
        <input type="file" name="pic[]" id="albumheadpic" maxlength="300" size="50" />        
  </fieldset>
    <input type="submit" id="submit_newalbum" value="Album eintragen"/>
    <input type="button" id="submit_cancelnewalbum" value="Abbruch" />
</form>

Wenn ich nun den FileUpload starte dann bekomme ich in der eingetragenen actiondatei folgende ausgabe (bei var_dump($_POST) und var_dump($_FILES))

Code:
array(5) { ["name"]=>  string(0) "" ["beschreibung"]=>  string(0) "" ["ort"]=>  string(0) "" ["groupid_list"]=>  string(0) "" ["APC_UPLOAD_PROGRESS"]=>  string(0) "" } array(1) { ["pic"]=>  array(5) { ["name"]=>  array(1) { [0]=>  string(14) "avatar-285.gif" } ["type"]=>  array(1) { [0]=>  string(9) "image/gif" } ["tmp_name"]=>  array(1) { [0]=>  string(14) "/tmp/phpk97jng" } ["error"]=>  array(1) { [0]=>  int(0) } ["size"]=>  array(1) { [0]=>  int(5653) } } }

Die $_POST Variable bekommt zwar die textfelder mit allerdings sind diese leer!
wenn ich im form tag den enctype wegmache dann kommen die textfelder auch mit nur die datei halt nicht!

Könnt ihr mir helfen?

Bei mir lokal am Rechner funktionierts
nur wenn ich das ganze auf meinen Server packe gehts nicht mehr!

Falls ihr weitere Infos benötigt einfach fragen

Danke für eure Hilfe

Matz
 
Zuletzt bearbeitet:
Hi Leute,

Habe heute noch etwas getestet und bin zu dem Schluss gekommen es muss an der Server konfig liegen!

Hab beides nochmal in ein eigenes File gepackt also filepost.php und filepost_post.php.
Im ersten File nur die Form zum posten des Textes und der Datei und im zweiten File nur das var_dump( $_POST ) und var_dump( $_FILES )

Wenn ich nun in die Textfelder irgendwas reinschreibe kommt es im filepost_post.php nicht an. Er bekommt zwar die Variablen aber ohne Inhalt! Hingegen das File kommt an.

Was kann das sein?

Hier nochmal der Code

HTML:
<form method="POST" id="form_newalbum" action="filepost_post.php" enctype="multipart/form-data"> 
  <fieldset style="display:block;">
    <legend>Daten</legend>
        <label for="name">Albumname:</label>
        <input type="text" name="albumname" id="albumname" maxlength="50" size="50"/>
        <label for="beschreibung">Beschreibung:</label>
        <textarea id="beschreibung" name="beschreibung" cols="100" rows="5"></textarea>     
        <label for="ort">Ort:</label>
        <input type="text" id="ort" name="ort" maxlength="50" size="50"/>        
        <label for="groupid">Gruppe w&auml;hlen:</label>
        <select name="groupid_list" id="groupid_list" size="1">
          <option value=""><--W&auml;hle eine Gruppe --></option>
        </select>
  </fieldset>
  <fieldset>    
    <legend>File</legend>
        <label for="pic">Bild upload:</label>
        <input type="file" name="pic[]" id="albumheadpic" maxlength="300" size="50" />        
  </fieldset>
    <input type="submit" id="submit_newalbum" value="Album eintragen"/>
    <input type="button" id="submit_cancelnewalbum" value="Abbruch" />
</form>

und hier nochmal der empfang der Daten

PHP:
 var_dump($_POST);
 var_dump($_FILES);

Hier die Ausgabe:
Code:
array(4) { ["albumname"]=>  string(0) "" ["beschreibung"]=>  string(0) "" ["ort"]=>  string(0) "" ["groupid_list"]=>  string(0) "" } array(1) { ["pic"]=>  array(5) { ["name"]=>  array(1) { [0]=>  string(16) "cod4logo_big.jpg" } ["type"]=>  array(1) { [0]=>  string(10) "image/jpeg" } ["tmp_name"]=>  array(1) { [0]=>  string(14) "/tmp/phpVacUfF" } ["error"]=>  array(1) { [0]=>  int(0) } ["size"]=>  array(1) { [0]=>  int(19636) } } }

Ich würde mich auf eine kurze Antwort freuen!

Gruß

Matz
 
Hi,

Ich habe mir von meinem Hoster ein neues PHP Paket schnüren lassen. Und zwar eines in dem alle PHP Standardpakete vorhanden sind. NUN geht es!
Ich habe allerdings keine Ahnung welches Paket da gefehlt hat.

Eines noch:
Da ich mich auch mit APC (Alternative PHP Cache) spiele hab ich anschließend mit dem neuen PHP Paket noch ein Problem gehabt!
Es scheint so, als will der FileUpload mit APC nach RFC1861 bei einem PHP Paket mit Suhosin nicht funktionieren. die Ausgabe mit apc_fetch('upload_<key>') gibt false zurück auch wenn die Ausgabe von apc_cache_info() einen File Upload anzeigt. => Suhosin weg und alles läuft nun wunderbar!
(PHP Version 5.2.5, APC Version 3.0.18)

Gruß Matz
 
Zurück