Eine frage wegen dateiuploadfunktion
Verfasst: 26.01.2026 17:05
Hallo liebe Gemeinde, ich bräuchte mal eine Auskunft.
Erstmal sorry. sollte ich das falsche Thema ausgewählt haben. Dann bitte ich Höfflichst einen Moderator dies entsprechend zu verschieben.
Ich bin gerade dabei, mich für meine Erweiterung „Simple Gallery“ mit der Thematik „Multiple Datei-Upload“ zu beschäftigen.
Ich habe auch schon eine Version, die soweit läuft, aber ich bin da noch nicht mit zufrieden.
Also im Moment lade ich die Dateien aus dem HTML-Formular in ein Array rein. Dies hab ich mir von der anderen Galerie, die aktuell von Satanov ist, abgeguckt.
Darum lade ich dies aktuell so:
Das funktioniert auch soweit und auch die abfrage der einzelnen dateien funktioniert. Und ich mache die meisten einzelnen Prüfungen mit dem phpbb eigene Routine.
Meine frage wäre. Wie müsste ich das anstellen, um das array in bzw. ich kann auch das array als single file array aufbauen was ich ja eh mache in den normaalen upload zu übergeben.
Im moment mach ich das ja so:
Das funktioniert allerdings nicht mit mehreren dateien.
Ich lade die dateien alle in eine array das dann in etwa so ausschaut:
HAb jetzt mal mit 2 dateien generiert.
Ich arbeite dann mit einem counter:
Damit ich die einzelnen Dateien einzeln durchlaufen lassen kann.
Wie man sieht mache ich das ganze mit ner einfachen for schleife. So kann ich jede datei einzeln abarbeiten und prüfen und dann entscheiden hochladen oder nicht mit fehlermeldung.
Das Funktioniert ja auch.
Meine Idee wäre es jetzt in der Forschleife einfach das array aufzubauen und an das zu übergeben:
Allerdings funktioniert das auch nicht so einfach.
Wer sich den ganzen quellcode der Test extension anschauen mag kann dies gerne hier tun:
https://github.com/chris1278/galtest/tree/Beta-7
Aktuell bin ich bei beta 7.
Diese ext ist nur zum testen. Wenn die funktion mit dem mehrere Bilder upload funktioniert werde ich dies in der Gallerie implementieren.
Erstmal sorry. sollte ich das falsche Thema ausgewählt haben. Dann bitte ich Höfflichst einen Moderator dies entsprechend zu verschieben.
Ich bin gerade dabei, mich für meine Erweiterung „Simple Gallery“ mit der Thematik „Multiple Datei-Upload“ zu beschäftigen.
Ich habe auch schon eine Version, die soweit läuft, aber ich bin da noch nicht mit zufrieden.
Also im Moment lade ich die Dateien aus dem HTML-Formular in ein Array rein. Dies hab ich mir von der anderen Galerie, die aktuell von Satanov ist, abgeguckt.
Darum lade ich dies aktuell so:
Code: Alles auswählen
$array = $this->request->variable('upload_test', ['name'=> ['' => ''], 'full_path' => ['' => ''], 'type' => ['' => ''], 'tmp_name' => ['' => ''], 'error' => ['' => ''], 'size' => ['' => '']], true, \phpbb\request\request_interface::FILES);
Meine frage wäre. Wie müsste ich das anstellen, um das array in bzw. ich kann auch das array als single file array aufbauen was ich ja eh mache in den normaalen upload zu übergeben.
Im moment mach ich das ja so:
Code: Alles auswählen
$fileupload = $this->files_factory->get('upload')
->set_allowed_extensions($sg_allowed_img_formats)
->set_disallowed_content(['body', 'head', 'html', 'img', 'plaintext', 'a href', 'pre', 'script', 'table', 'title'])
->set_max_filesize($sg_allowed_file_size)
->set_error_prefix('SG_FILES_ERROR_');
$upload_file = $fileupload->handle_upload('files.types.form', 'sg_pic_upload');Ich lade die dateien alle in eine array das dann in etwa so ausschaut:
Code: Alles auswählen
array (size=6)
'name' =>
array (size=2)
0 => string '1.jpg' (length=5)
1 => string '1.png' (length=5)
'full_path' =>
array (size=2)
0 => string '1.jpg' (length=5)
1 => string '1.png' (length=5)
'type' =>
array (size=2)
0 => string 'image/jpeg' (length=10)
1 => string 'image/png' (length=9)
'tmp_name' =>
array (size=2)
0 => string 'D:\wamp64\temp\php6D51.tmp' (length=26)
1 => string 'D:\wamp64\temp\php6D52.tmp' (length=26)
'error' =>
array (size=2)
0 => string '0' (length=1)
1 => string '0' (length=1)
'size' =>
array (size=2)
0 => string '183852' (length=6)
1 => string '32111' (length=5)Ich arbeite dann mit einem counter:
Code: Alles auswählen
$file_count = !empty($uploads['name']) ? count($uploads['name']) : 0;Code: Alles auswählen
for ($i = 0; $i < $file_count; $i++)
{
$upload_ready[$i] = [
'name' => utf8_basename($uploads['name'][$i]),
'full_path' => $uploads['full_path'][$i],
'type' => $uploads['type'][$i],
'tmp_name' => $uploads['tmp_name'][$i],
'error' => ($uploads['error'][$i]) ? $uploads['error'][$i] : null,
'size' => $uploads['size'][$i]
];
Das Funktioniert ja auch.
Meine Idee wäre es jetzt in der Forschleife einfach das array aufzubauen und an das zu übergeben:
Code: Alles auswählen
$upload_file = $fileupload->handle_upload()Wer sich den ganzen quellcode der Test extension anschauen mag kann dies gerne hier tun:
https://github.com/chris1278/galtest/tree/Beta-7
Aktuell bin ich bei beta 7.
Diese ext ist nur zum testen. Wenn die funktion mit dem mehrere Bilder upload funktioniert werde ich dies in der Gallerie implementieren.