Hallo Stefan,
warum verwendest Du nicht einfach den integrierten Dateiupload via Formular? Mir erscheint Dein gegenwärtiges Konstrukt etwas kompliziert, da Du eine komplette PHP-Datei (aus /media/files) via IFrame einbindest. Im Vergleich zum Original von https://www.hscripts.com/scripts/php/mu…file-upload.php fehlen aber 36 Zeilen Programmcode, nämlich der gesamte "echte" PHP-Bereich (im Original Zeile 38 bis 73):
<?php
error_reporting(0);
$valid_formats = array("jpg", "png", "gif", "zip", "bmp","jpeg");
$max_file_size = 1024*200; //200 kb
$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
$path1="uploads/".$_FILES["files"]['name'][$f];
copy( $_FILES["files"]['tmp_name'][$f], $path1.$name );
echo "<div> " . $_FILES["files"]['name'][$f] . "Uploaded Successfully!<br>";
echo "Type: " . $_FILES["files"]["type"][$f] . "<br>";
echo "Size: " . ($_FILES["files"]["size"][$f] / 1024) . " Kb<br>";
echo "Stored in: " .$path.$_FILES["files"]["name"][$f]."<br></div><br>";
$count++; // Number of successfully uploaded file
}
}
}
}
?>
Alles anzeigen
In diesem Bereich ist dann angegeben, wohin der Upload erfolgen soll. Weiter enthält dieser Bereich Erfolgs- und Fehlermeldungen. Wie gesagt, das selbe lässt sich auch mit dem Feld "Datei-Upload" im Widget "Formular" realisieren, das Feld muss dann halt nur mehrfach eingefügt werden.