Problème avec envoi de fichiers php
aneantisseur
Messages postés
385
Date d'inscription
Statut
Membre
Dernière intervention
-
aneantisseur Messages postés 385 Date d'inscription Statut Membre Dernière intervention -
aneantisseur Messages postés 385 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un petit problème avec un formulaire où l'utilisateur envoi des champs text mais aussi deux champs fichier. Donc j'ai codé normalement, mais apparement ca bug, puisque rien ne s'ajoute à ma BDD. Voici mon code :
Merci.
if(isset($_POST['ajout_video'])) { $query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error()); if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0) { $infosfichier = pathinfo($_FILES['img_video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; move_uploaded_file($_FILES['img_video']['tmp_name'],$nom); mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de l\'image a bien été effectuée !'; } else { echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>'; } } if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0) { $infosfichier = pathinfo($_FILES['video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('avi, wmv'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; move_uploaded_file($_FILES['video']['tmp_name'],$nom); mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de la vidéo a bien été effectuée !'; } else { echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>'; } } }
Merci.
A voir également:
- Problème avec envoi de fichiers php
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Gestionnaire de fichiers - Télécharger - Gestion de fichiers
- Wetransfer gratuit fichiers lourd - Guide
14 réponses
$nom = "videos/{$_POST[name_video]}.{$extension_upload}";
Cette ligne me parait bizarre mets plutot:
$nom = "videos/".$_POST[name_video].".".$extension_upload;
idem qq lignes plus bas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voilà le code de mon formulaire, car je viens de remarquer qu'en fait, la partie qui traite l'envoi des fichiers n'est pas du tout appelée :
Merci.
<div style="float: left"><form action="" method="post" enctype="multipart/form-data"> Nom : <input type="text" name="name_video" id="name_video" /> Description : <textarea name="descr_video" id="descr_video"></textarea> Image (50Ko, 200px*200px) : <input type="file" name="img_video" id="img_video" /> Vidéo : <input type="file" name="video" id="video" /> <input type="submit" name="ajout_video_episode" id="ajout_video_episode" /></form></div>
Merci.
<form action="" method="post" enctype="multipart/form-data">
il faut preciser par action="...." la page appelée, c a d le script qui traite l'upload
il faut preciser par action="...." la page appelée, c a d le script qui traite l'upload
donnes le code complet de ton formulaire, et le nom du script appelé, celui qui traite de l'enregistrement
if(isset($_POST['ajout_video_episode'])) { echo'Page ajout'; $query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error()); if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0) { $infosfichier = pathinfo($_FILES['img_video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; move_uploaded_file($_FILES['img_video']['tmp_name'],$nom); mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de l\'image a bien été effectuée !'; } else { echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>'; } } if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0) { $infosfichier = pathinfo($_FILES['video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('avi, wmv'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; move_uploaded_file($_FILES['video']['tmp_name'],$nom); mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de la vidéo a bien été effectuée !'; } else { echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>'; } } } else { echo'<div style="float: left"><form action="ajout_episode.php" method="post" enctype="multipart/form-data"><table><tr><td width="150px"> Nom : </td><td width="200px"><input type="text" name="name_video" id="name_video" /></td></tr> <tr><td width="150px">Description : </td><td width="200px"><textarea name="descr_video" id="descr_video"></textarea></td></tr> <tr><td width="150px">Image (50Ko, 200px*200px) : </td><td width="200px"><input type="file" name="img_video" id="img_video" /></td></tr> <tr><td width="150px">Vidéo : </td><td width="200px"><input type="file" name="video" id="video" /></td></tr> <tr><td width="150px"><input type="submit" name="ajout_video_episode" id="ajout_video_episode" /></td></tr></table></form></div>'; }
Merci.
<?php //je supose qu'il y a qd même qq chose avant ce if //sinon il manque session_start(); puisque tu utilises $_SESSION['pseudo'] if(isset($_POST['ajout_video_episode'])) { echo'Page ajout'; $query_ajout_video_final = mysql_query("INSERT INTO videos VALUES('', '".$_SESSION['pseudo']."', '".$_POST['name_video']."', '".$_POST['descr_video']."', '', '". 0 ."', '', '".time()."')") or die(mysql_error()); if (isset($_FILES['img_video']) AND $_FILES['img_video']['error'] == 0) { $infosfichier = pathinfo($_FILES['img_video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; //la j'ai des doutes, // essayes avec: $nom = "videos/".$_POST[name_video].".".$extension_upload"; echo 'Nom: '.$nom; ///TEST move_uploaded_file($_FILES['img_video']['tmp_name'],$nom); mysql_query("UPDATE videos SET image='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de l\'image a bien été effectuée !'; } else { echo '<p>Le format de l\'image n\'est pas bon. Veuillez le changer.</p>'; } } if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0) { $infosfichier = pathinfo($_FILES['video']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('avi, wmv'); if (in_array($extension_upload, $extensions_autorisees)) { $nom = "videos/{$_POST[name_video]}.{$extension_upload}"; move_uploaded_file($_FILES['video']['tmp_name'],$nom); mysql_query("UPDATE videos SET chemin='".$nom."' WHERE nom='".$_POST['name_video']."'"); echo 'L\'ajout de la vidéo a bien été effectuée !'; } else { echo '<p>Le format de la vidéo n\'est pas bon. Veuillez le changer.</p>'; } } } else { ?> <!-- c'est plus parlant en code html ensuite dans une table il faut avoir pour chaque ligne tr le mêm nombre de td ou mettre un colspan= pour compenser il suffit de fixer la largeur sur la première ligne les autre seront identiques mets une value au bouton submit = ce qui sera affiché dans le bouton --> <div style="float: left"> <form name="form1" method="post" action="ajout_episode.php" enctype="multipart/form-data"> <table> <tr> <td width="150px">Nom : </td> <td width="200px"><input type="text" name="name_video" id="name_video" /></td> </tr> <tr> <td>Description : </td> <td><textarea name="descr_video" id="descr_video"></textarea></td> </tr> <tr> <td>Image (50Ko, 200px*200px) : </td> <td><input type="file" name="img_video" id="img_video" /></td> </tr> <tr> <td>Vidéo : </td> <td><input type="file" name="video" id="video" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="ajout_video_episode" id="ajout_video_episode" value=" ?"/></td> </tr> </table> </form> </div> <?php } ?>