Hallo zusammen,
ich schreibe gerade an einer Extension.
In der Datei für das Backend möchte ich eine CSV-Datei hochladen.
Das Formular funktioniert perfekt, wenn ich es in der PHP-Script-Extension erstelle.
Anscheinend hat er Probleme mit der Variabklen $-FIILES.
Wer kann mir da helfen.
Vielen Dank schon mal.
Gruß Bernd
Hi!
Lass Dier doch mal in der Extension die Postvariablen ausgeben, um zu sehen, ob die überhaupt korrekt übermittelt werden:
...
t3lib_div::debug($_POST);
...
CU
maxhb
gib doch mal bitte eienn auszug aus deinem script.....
da kann man dann leichter was sagen..
cu
thorsten
Hallo zusammen,
danke für eure Antworten.
Hier ist mein Code:
if (!isset($_POST["csv_upload"])) {
$content.="<form action='".$_SERVER["REQUEST_URI"]."' method='post' enctype='multipart/form-data'>
<input type='hidden' name='MAX_FILE_SIZE' value='30000'>
Send this file: <input name='userfile' type='file'>
<input type='submit' value='Send File' name='csv_upload'>
</form>";
}
else {
t3lib_div::debug($_POST);
t3lib_div::debug($_FILES);
}
Wenn ich diesen Code in das Content-Element PHP-Script reinschreibe und anschließend eine Datei hochlade steht folgendes drin:
in der Varialen $_POST:
MAX_FILE_SIZE 30000
csv_upload Send File
in der Variablen $_FILES:
name Test.csv
type application/vnd.ms-excel
tmp_name /tmp/phps3lfXw
error 0
size 267
Aber wenn ich den selben Code in mein Backend-Modul einbau erscheint folgendes:
In der $_POST:
SET function 2
MAX_FILE_SIZE30000
userfileTest.csv
csv_upload Send File
Die Variable $_FILES ist "empty" also leer.
Gruß Bernd
Hallo Bernd,
habe genau das gleiche Problem, leider aber noch keine Lösung... bist du schon weitergekommen?? Ich studiere gerade den EM, der ja auch ein Uploadform beinhaltet und ebenso ein BE-Modul ist - aber bis jetzt habe ich noch keinen Unterschied zwischen deiner, meiner und der Programmierung des EMs gesehen ... warum funzt der Upload von Extensions also mit $_FILES, nur bei der eigenen Extension wollen keine Daten per $_FILES rüberwachsen ...!?!?
Grüße,
Commodore
hi leute,
hatte auch mal das problem. das entscheidene bei mir war die zeile 5 (move_uploaded_file). dadurch wird die datei in den mod1 ordner kopiert und kann dann gelesen werden.
vielleicht hilft es euch ja!?
if(isset($_FILES['datei'])){
if($_FILES['datei']['type']=="application/vnd.ms-excel"){
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
if(preg_match($regExp,$_FILES['datei']['name']) && $_FILES['datei']['size'] > 0 && $_FILES['datei']['size'] < 100000){
move_uploaded_file($_FILES['datei']['tmp_name'],$_FILES['datei']['name']);
$csv=file($_FILES['datei']['name']);
...
mfg
tom
Hallo,
ich habe das gleiche Problem. in $_POST steht der Dateiname aber $_FILES ist leer.
Die Lösung von "friction48" nützt nichts, denn in $_FILES steht ja keine Datei, die man moven könnte.
Ich habe schon 2 andere Extensions auseinander genommen, die offendsichtlich die Upload korrekt behandeln können.
Aber ich finde nichts, was bei meinem Modul hilft.
Hat von euch inzwischen jmd was rausgefunden?
Bin für jeden Tipp dankbar!
Gruß
Tobias
In deinem form - Tag wird sicherlich das hier fehlen:
enctype="multipart/form-data"
jenses
Guter Tipp!
Ich hatte zwar in meinem Form diesen enctype angegeben, aber es gab im main() meines BE-Moduls noch eine weiteres <form>, dass nicht wieder geschlossen wurde. Dieses ist wohl für das kleine Dropdown das immer oben rechts steht zuständig.
Dieses <form> also wurde nicht wieder geschlossen UND hatte ausserdem eben diesen "enctype" nicht.
Der Browser hat dann wohl diesen als relevantes <form>-Tag interpretiert.
Das erklärt auch einige andere merkwürdigkeiten, nicht so funktionieren, wie ich es erwartet hätte (z.b. im action="" mitgegebene GET-Parameter, die einfach nicht übergeben wurden)
Man nach sowas kann man ja lange suchen :-)
Dank + Gruß
Tobias