Hallo zusammen,
ich bin gerade dabei mich in die Entwicklung von Typo3 Extensions reinzuarbeiten, und stehe bereits vor der ersten Hürde:
Wie schaffe ich es in meiner index.php einen Fileupload zu erzeugen?
Zum Hintergrund:
Ich möchte eine Extension bauen, mit der man csv Datein hochladen kann, um Datensätze in einer Tabelle zu speichern. Die Verarbeitung nach dem Upload wäre schon klar, der upload an sich jedoch nicht.
Vielen Dank für eure Hilfe
Hi,
Wie schaffe ich es in meiner index.php einen Fileupload zu erzeugen?
Verstehe nich, was du damit meinst ...
Soll das als Plugin funktionieren, dass du auf einer Seite einbindest?
Aber generell einen Fileupload mit PHP und die Datei mit "$_FILES['thefile']['tmp_name']" ansprechen kriegst du hin, oder?
Du musst die Datei ja auch nicht selbst irgendwo abspeichern. Es wird ja automatisch eine temporäre Datei angelegt, die du mit PHP auslesen kann.
Viele Grüße
hi, danke für deine antwort.
Meine Datei Test-Upload Funktion schaut so aus:
function fileHandler(){
if (array_key_exists('submit', $_POST)) {
if ($_FILES["data_upload"]["error"] > 0)
{
echo "Error: " . $_FILES["data_upload"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["data_upload"]["name"] . "<br />";
echo "Type: " . $_FILES["data_upload"]["type"] . "<br />";
echo "Size: " . ($_FILES["data_upload"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["data_upload"]["tmp_name"];
}
}
}
Wenn ich mir $_FILES via var_dump ausgeben lasse ist es immer leer....
Hi,
hmm... wie sieht denn das zugehörige HTML-Formular aus? Die Angabe "data_upload" simmt?
Hast du mal einfach versucht mit "move_uploaded_file" die Datei zu speichern?
Welche PHP Version hast du? Ich glaube unter 5 gabs mal irgendwelche Probleme mit "$_FILES".
Bin leider auch nich so der PHP-crack....
Grüße
Hello zusammen,
danke für eure Antworten, ich habe das Problem anderweitig gelöst.
Damit nicht noch mehr im Dunkeln tapen hier die Lösung:
in der Datei "index.php" im Verzeichnis "mod1" eurer Extension müsst ihr in der Funktion "main()"
folgende Zeile
$this->doc->form='<form action="" method="POST">';
durch folgende
$this->doc->form='<form action="" method="POST" enctype="multipart/form-data">';
ersetzen. Das Attribut enctype="multipart/form-data" ist hierbei das wichtige 😃
greets sarefa