Fileupload (ENCTYPE="multipart/form-data")
Hans
- cgi
Hallo,
Habe ein Formular in Perl geschrieben, es werden Textfelder, Formularfelder, Checkboxen... eingelesen (funktioniert auch alles einwandfrei!).
Der einleitende <form>-Tag sah aus wie folgt:
<form name="mail" method=POST action="$cgi_www?new">
Nun wollte ich aber noch einen File-Upload in mein Skript einfügen. Nun hab ich mich mal ein bisschen schlau gemacht und habe herrausgefunden das ich "ENCTYPE="multipart/form-data" in meinem einleitenden <form>-Tag einfügen muss.
Der neue einleitende <form>-Tag sieht aus wie folgt:
<form name="mail" method=POST action="$cgi_www?new" ENCTYPE="multipart/form-data">
Nur leider wird nun nur noch die Datei hochgeladen, aber die Formularfelder werden nicht mehr übergeben.
Hat vielleicht einer von euch ne Idee woran das liegen könnte? Wäre für schnelle Hilfe sehr Dankbar!
Falls ihr noch weitere Informationen braucht, ich schreib gern noch mehr :)
Mfg Hans
Hi,
Habe ein Formular in Perl geschrieben, es werden Textfelder, Formularfelder, Checkboxen... eingelesen (funktioniert auch alles einwandfrei!).
was hat dieses Script, was nicht auch CGI.pm hat? Abgesehen davon, dass dieses Standard-Modul mit Fileuploads, <select multiple> und jedwedem anderen Gedöns keine Probleme hat, Deines aber schon.
<form name="mail" method=POST action="$cgi_www?new">
Du solltest nur _entweder_ POST _oder_ GET verwenden, nicht beides parallel. Wenn Du POST einsetzt, verlege URL-Parameter in <input type="hidden">.
Und benutze name/value-pairs, nicht stumpfen Text.
Hat vielleicht einer von euch ne Idee woran das liegen könnte?
Nicht ohne ein Minimum an Code. So kann ich nur raten, dass Du CGI.pm nicht einsetzt, was ich durchaus als Fehler bezeichnen möchte. Falls dem so ist, lies
perldoc CGI
Cheatah
Du solltest nur _entweder_ POST _oder_ GET verwenden, nicht beides parallel. Wenn Du POST einsetzt, verlege URL-Parameter in <input type="hidden">.
perldoc CGI
Cheatah
Hallo,
verwende die Methode "post", hab leider keine Ahnung was du mit <input type="hidden">. meinst.
mfg
Hans
Hi,
verwende die Methode "post",
das hab ich gesehen, darum der Einwand - denn die Formular-Action hat implizit die Methode GET.
hab leider keine Ahnung was du mit <input type="hidden">. meinst.
Nimm die GET-Parameter aus der Formular-Action raus und setze sie in versteckte Eingabefelder.
Cheatah
Hi,
verwende die Methode "post",
das hab ich gesehen, darum der Einwand - denn die Formular-Action hat implizit die Methode GET.
hab leider keine Ahnung was du mit <input type="hidden">. meinst.
Nimm die GET-Parameter aus der Formular-Action raus und setze sie in versteckte Eingabefelder.
Cheatah
Hallo,
kannst du mir vielleicht n Beispiel geben? Hab selber die Lösung leider immer noch nicht gefunden ;(
Hier einen Auszug aus meinem Skript (Das Formular wo abgesendet wird):
<form name="mail" method=post action="$cgi_www?new">
<table width="46%" border="0" bordercolor="#000000" bgcolor="#003366"> tr bgcolor="#003366"> <td width="28%"><font color="#FFFFFF" size="2" face="Courier New, Courier, mono">Filmname:</font></td> <td width="5%"><font color="#FFFFFF">$x_name</font></td> <td width="67%"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="name" size="60" value="$FM{'name'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%"> <p><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Filmbeschreibung:</font></p> <p><font face="Courier New, Courier, mono" size="2" color="#FFFFFF"><img src="$pic_dir/trenner.gif" border=0 width=200 height=122></font></p> </td> <td width="5%"> <p><font color="#FFFFFF">$x_beschreibung</font></p> <p> </p> <p> </p> <p> </p> <p> </p> </td> <td width="67%"> <textarea style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="beschreibung" cols="40" rows="10">$FM{'beschreibung'}</textarea> </td> </tr> <tr bgcolor="#003366"> <td width="28%"> <p><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Darsteller:</font></p> <p><font face="Courier New, Courier, mono" size="2" color="#FFFFFF"><img src="$pic_dir/trenner.gif" border=0 width=200 height=49></font></p> </td> <td width="5%"> <p><font color="#FFFFFF">$x_darsteller</font></p> <p> </p> <p> </p> </td> <td width="67%"> <textarea style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="darsteller" cols="40" rows="5">$FM{'darsteller'}</textarea> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">FSK:</font></td> <td width="5%"><font color="#FFFFFF">$x_fsk</font> </td> <td width="67%"> <select style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="fsk" size="1"> <option value="1" selected></option> <option>bitte auswählen</option> <option>unbeschränkt</option> <option>ab 6 Jahre</option> <option>ab 12 Jahre</option> <option>ab 16 Jahre</option> <option>ab 18 Jahre</option> </select> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Genre:</font></td> <td width="5%"><font color="#FFFFFF">$x_genre</font></td> <td width="67%"> <select style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="genre" size="1"> <option selected>bitte auswählen</option> <option>Action</option> <option>Comedy</option> <option>Dokumentation</option> <option>Drama</option> <option>Erotik</option> <option>Hardcore</option> <option>Horror/Splatter</option> <option>Komödie</option> <option>Serie</option> <option>Skuriles</option> <option>Spielfilm</option> <option>Sport</option> <option>Thriller</option> <option>Zeichentrick</option> </select> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Qually</font></td> <td width="5%"><font color="#FFFFFF">$x_bild</font></td> <td width="67%"> <select style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="qually" size="1"> <option selected>bitte auswählen</option> <option>sehr gut</option> <option>gut</option> <option>befriedigend</option> <option>ausreichend</option> <option>mangelhaft</option> <option>ungenügend</option> </select> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font face="Courier New, Courier, mono" size="2" color="#FFFFFF">Dateiformat</font></td> <td width="5%"><font color="#FFFFFF">$x_datei</font></td> <td width="67%"> <select style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="dformat" size="1"> <option selected>bitte auswählen</option> <option>DiviX</option> <option>mpeg</option> <option>VCD</option> <option>SVCD</option> <option>ASF</option> <option>AngelIP</option> <option>andere</option> </select> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Tonformat:</font></td> <td width="5%"><font color="#FFFFFF">$x_ton</font></td> <td width="67%"> <select style="background-color: #999999; color: #660000; border: 1 solid #7496B9" name="sformat" size="1"> <option selected>bitte auswählen</option> <option>AC3</option> <option>mp3</option> <option>sonstige</option> </select> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">Größe des Films (in MB):</font></td> <td width="5%"><font color="#FFFFFF">$x_mb</font></td> <td width="67%"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="mb" size="40" value="$FM{'mb'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">edonkey-Link CD1:</font></td> <td width="5%"><font color="#FFFFFF">$x_link1</font></td> <td width="67%"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="link1" size="40" value="$FM{'link1'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">edonkey-Link CD2*:</font></td> <td width="5%"><font color="#FFFFFF"></font></td> <td width="67%"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="link2" size="40" value="$FM{'link2'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%" height="2"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">edonkey-Link CD3*:</font></td> <td width="5%" height="2"><font color="#FFFFFF"></font></td> <td width="67%" height="2"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="link3" size="40" value="$FM{'link3'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%" height="2"><font size="2" face="Courier New, Courier, mono" color="#FFFFFF">edonkey-Link CD4*:</font></td> <td width="5%" height="2"><font color="#FFFFFF"></font></td> <td width="67%" height="2"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="text" name="link4" size="40" value="$FM{'link4'}"> </td> </tr> <tr bgcolor="#003366"> <td width="28%" height="2"> <div align="left"><font face="Courier New, Courier, mono" size="2" color="#FFFFFF">Film Cover </font> </div> </td> <td width="5%" height="2"> <div align="left"><font color="#FFFFFF">$x_cover</font></div> </td> <td width="67%" height="2"> <input style="background-color: #999999; color: #660000; border: 1 solid #7496B9" type="file" name="myfile" size="39" >
</td> </tr> <tr bgcolor="#003366"> <td width="28%" height="2"> <div align="right"> <input type="submit" name="abschicken" value="melden!"> </div> </td> <td width="5%" height="2"> <!--submit--> </td> <td width="67%" height="2"> <input type="reset" name="Zurücksetzen" value="Eingabe löschen"> </td> </tr> </table>
Besten Dank!
Mfg
Hans
hab leider keine Ahnung was du mit <input type="hidden">. meinst.
Nimm die GET-Parameter aus der Formular-Action raus und setze sie in versteckte Eingabefelder.
kannst du mir vielleicht n Beispiel geben? Hab selber die Lösung leider immer noch nicht gefunden ;(
http://selfhtml.teamone.de/html/formulare/versteckte.htm#definieren