Plusieurs de téléchargement d'images avec PHP sauver un seul chemin d'accès au fichier de Base de données MySQL

Je suis en construction d'un site pour un ami, et ont mis en place un formulaire qui permettra de télécharger plusieurs images à la base de données. Il ne sera accessible que par une personne, et n'est pas visible pour le grand public pour des raisons de facilité de codage j'ai ignoré un grand nombre de menaces possibles pour le code dans le but de simplement le faire fonctionner.

Le HTML est simple, c'est juste:

<form action="(url here)" method="post" enctype="multipart/form-data">
     <input type="file" name="files[]" multiple>
     <input id="formbutton" type= "submit" value="Upload!">
</form>

Voici le php que je suis inquiet.

if(isset($_FILES['files'])){ 
    foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name){
        $target="images/costume/";
        $target=$target.$_FILES['files']['name'][$key];
            if(move_uploaded_file($tmp_name, $target)){
                $id = mysql_insert_id($con);
                mysql_query("INSERT INTO costumes (id,name) VALUES ('$id','$name')");
            }
    }
}

L'ensemble de l'image de téléchargement de fichiers vers le répertoire sur le serveur, mais seulement l'UNE des images en fait des magasins dans la table MySQL comme une ligne avec l'ID et le nom de fichier.

J'ai cassé mon cerveau et de la recherche comme un fou pour trouver une solution, mais il ne sont pas tous qui ont travaillé. Je sais qu'il a quelque chose à voir avec la boucle foreach mais je suis à une perte de quoi faire pour faire de chaque image que j'ai de téléchargement de créer une ligne dans la base de données.

Merci pour l'aide les gars.

Désolé, j'ai été faire des changements et j'ai oublié de revenir à l'original du code pour la dernière section:

if(isset($_FILES['files'])){ 
    foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name){
        $target="images/costume/";
        $target=$target.$_FILES['files']['name'][$key];
            if(move_uploaded_file($tmp_name, $target)){
                $id = mysql_insert_id($con);
                mysql_query("INSERT INTO costumes (id,name) VALUES ('$id','$target')");
            }
    }
}

C'est comment il devrait être.

  • me semble que votre $nom de la variable n'est pas initialisée n'importe où.
  • J'ai corrigé le problème. $cible était censé être là, au lieu de $nom, mais qui toujours me ramène à la case départ.
  • jetez un oeil à ceci: stackoverflow.com/questions/3215324/...
  • J'ai vu qu'est-ce que worng..je vais poster
InformationsquelleAutor Hero_Vega | 2013-08-01