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
Vous devez vous connecter pour publier un commentaire.
1 - Vous devez faire un tableau avec la liste de l'image que vous souhaitez stockées
2 - Utilisation d'auto-incrémentation dans votre colonne Id de la table(Important)
aussi, vous avez le tableau que vous pouvez faire la requête comme suit:
capturer les données de post
Comme Note de côté:
Mysql_* extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. Au lieu de cela, la MySQLi ou PDO_MySQL extension doit être utilisée.
Un lien utile Pourquoi ne pas l'utiliser mysql_* les fonctions en PHP
Vous ne devez pas utiliser "mysql_insert_id", mais de définir l'identifiant de ligne pour auto-incrémentés dans phpmyadmin.