Bild hochladen

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich bin noch nicht der beste in PHP, aber ich habe es trotzdem probiert, dass ich ein Bilderupload Formular programmiere.
Durch eure Hilfe könnte ich es schaffen. :)

Es wäre also nett, wenn ihr mir weiterhelfen würdet:

So, nun zum Problem.

Das Script:
http://nopaste.php-q.net/277492

Ich glaube es ist extrem fehlerhaft.

Die Fehlermeldung:
Notice: Array to string conversion in C:\Programme\xampp\htdocs\uttx\_special_effects\verwaltung\gallery_add_pic.php on line 39


Danke!
 
Werden mehrere Dateien gleichzeitig über demselben Bezeichner hochgeladen, ist $_FILES["file"]["tmp_name"] ist ein Array und keine Zeichenkette – das sagt doch auch die Fehlermeldung.
 
Na, ist ja im Prinzip ganz einfach, da das ein Array ist, musst du das auch wie ein Array behandeln, und nicht wie ein String. Lösen kannst du das mit ner ganz normalen For-Schleife. Bietet sich an, weil das Array ein numerisches ist: Array( [0] => 'bild1.jpg', [1] => 'Bild2.gif' , etc. );
PHP:
// Zuerst zählen wie viele Felder ausgefüllt wurden
$count_arr = count( trim( $_FILES[ 'file' ][ 'name' ] ) ) OR die( 'Bitte Dateien auswählen' );

// Files durchlaufen
for( $i = 0; $i < $count_arr ; $i++ )
{
    // Bild prüfen, etc. also der Part aus deinem Script
    foreach ($_FILES["file"]["error"][ $i ] as $key => $error) {
  if ($error == UPLOAD_ERR_OK) {
  
  // Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES["file"]["tmp_name"][ $i ])) {

// Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"][ $i ])) {

...


}

Getestet hab ich es so natürlich nicht, aber ich denke, dass ich dir die richtige Herangehensweise näherbringen konnte :)
 
Falls du mehrere Bilder gleichzeitig hochladen lässt, denke daran auf der HTML-Seite davor den verschiedenen Upload-Feldern den gleichen Namen aber mit [] zu geben.

also: Name[]
 
Zurück