Page 1 sur 2

Problème de téléchargement de vidéo

Posté : 09 mai 2006, 09:27
par marie
Bonjour, voila j'aimerais créer un formulaire de téléchargement vidéo mais la vidéo n'est pas téléchargée.
L'enregistrement en base de donné fonctionne mais pas le transfert de la vidéo.
Voici mon code :
<form action="index.php?videos=oui&valid=nouv&nouvvid=oui" method="post" enctype="multipart/form-data" onsubmit="return submitForm(this)"> 
									<table width="450" border="0" cellspacing="0" cellpadding="5" align="center" class="textcreation">
										<tr>
											<td align="left" valign="middle"><strong>Titre :</strong></td>
											<td align="left" valign="middle"><input name="titre" type="text" size="40" maxlength="256" /></td>
										</tr>
										<tr>
											<td align="left" valign="top"><strong>Déscription :</strong></td>
											<td align="left" valign="middle"><textarea name="description" cols="40" rows="5"></textarea></td>
										</tr>
										<tr>
											<td align="left" valign="middle"><strong>Vidéos :</strong></td>
											<td align="left" valign="middle"><input name="videos" type="file" size="40" /></td>
										</tr>
										<tr>
											<td align="center" valign="middle" colspan="2"><input name="valider" type="submit" value="Valider" /><img src="loading.gif" id="monImageDeChargement" style="display:none" /> </td>
										</tr>
									</table>
								</form>
								<?php } 
								if (isset($_GET['valid'])) { 
								$titre = addslashes($_POST['titre']);
								$description = addslashes($_POST['description']);
								if ($titre == '') {
								echo '<font color="#FF0000"><strong>Veuillez ajouter un titre</strong></font>';
								}
								if (($_FILES['videos']["name"] != '') && ($titre != '')) { 
								if (strtolower(substr($_FILES['videos']['name'],-4))!=".wmv") {
								echo '<font color="#FF0000"><strong>Votre vidéo doit être aux format .wmv</strong></font><br><br>';
								} else {
								// test taille max 1Mo
								if ($_FILES['videos']['size'] > 10000*1024) {
								echo '<font color="#FF0000"><strong>Votre vidéo ne doit pas dépasser 10Mo</strong></font><br><br>';
								} else {
								// si tout est ok
								$videos1 = $_FILES['videos']["name"];
								$repertoireDestination = "../videos/".$_SESSION['pseudo']."-".$videos1."";
								/* copie le fichier dans le repertoire */
								copy($HTTP_POST_FILES['videos']['tmp_name'], $repertoireDestination );
								echo '<font color="#0000FF"><strong>Votre vidéo a été ajouté</strong></font>';
								$pseudo = $_SESSION['pseudo'];
								$date = date("d/m/Y");
								if ($_GET['valid'] == 'nouv') {
								mysql_query("INSERT INTO videos (pseudo, titre, description, date, nom) VALUES ('$pseudo', '$titre', '$description', '$date', '$videos1')") or die (mysql_error());
								} else {
								$id = $_GET['valid'];
								mysql_query("UPDATE videos SET pseudo='$pseudo', titre='$titre', description='$description', date='$date', nom='$videos1' where id = '$id'") or die (mysql_error()); 
								}
								?>
Merci pour votre aide

Posté : 09 mai 2006, 09:32
par damaskinos
salut essaye avec
  move_uploaded_file
ça devrait marché

bonne chance

Posté : 09 mai 2006, 09:58
par marie
J'ai testé mais ca ne fonctionne pas pourtant j'ai vérifié le répertoire de déstination voila ce que j'ai fais :
move_uploaded_file($HTTP_POST_FILES['videos']['tmp_name'], $repertoireDestination );
Merci

Posté : 09 mai 2006, 10:01
par agité
Essaye comme ca :
move_uploaded_file($HTTP_POST_FILES['videos']['tmp_name'], $repertoire . Destination );

Posté : 09 mai 2006, 10:04
par marie
J'ai essayé mais mon répertoire de déstination est dans

Code : Tout sélectionner

$repertoireDestination
, et donc cela m'affiche une erreur

Posté : 09 mai 2006, 10:06
par zeus
Quel est le message d'erreur ?

Généralement, c'est textuellement le problème et c'est la meilleure solution pour résoudre le problème ;)

Posté : 09 mai 2006, 10:06
par agité
il faut mettre : $repertoire . $fichier

autrement dit 2 variable, une pour le nom du dossier et une pour le nom du fichier a copier.

Je sais pas si c'est clair j'avais oublier de mettre le $ devant Destination au dessus.

Posté : 09 mai 2006, 10:07
par agité
move_uploaded_file($HTTP_POST_FILES['videos']['tmp_name'], $repertoire . $videos1 );

Posté : 09 mai 2006, 10:08
par zeus
agité, si j'en crois ce bout de code :
$videos1 = $_FILES['videos']["name"];
$repertoireDestination = "../videos/".$_SESSION['pseudo']."-".$videos1."";
$repertoireDestination, malgrès son nom contient l'url TOTAL, avec répertoire + nom du fichier ;)

Posté : 09 mai 2006, 10:12
par agité
Excuse je pensais qu'il vallait mieux redefinir pour que ce soit plus clair le nom du dossier suivi du nom du fichier :?

Posté : 09 mai 2006, 10:12
par marie
oui $repertoireDestination contient les deux j'ai essayé en des deux manières mais sans résultat et cela ne m'affiche aucune erreur, ajoute les données dans la BDD mais ne copy pas la vidéo???
Merci pour votre aide

Posté : 09 mai 2006, 10:16
par zeus
C'est 2 manières de penser. Personnellement, j'aime bien ne manipuler qu'une seule variable contenant l'url totale, mais c'est mon choix et je n'oblige personne à le suivre.

Après, comme marie a décidé d'utiliser la même méthode que moi ... ;)
Par contre, le nom de la variable $repertoireDestination est très mal choisi ;)

Pour afficher tout les messages d'erreur, utilise
error_reporting(E_ALL);
en haut de ta page

Sinon, pour un debugage efficace, je te conseille de faire afficher les url afin de vérifier que tout se passe comme tu veux. Il est possible que le transfert se fasse, mais pas là où tu le voudrais :lol:

Posté : 09 mai 2006, 10:28
par marie
les url sont correct le repertoire de déstination...
Avec

Code : Tout sélectionner

error_reporting(E_ALL);
je n'ai aucun résultat :(
Le fait de travailler sur un disque externe en local ca peut jouer?
J'ai un téléchargement de photo qui fonctionne très bien..
Merci

Posté : 09 mai 2006, 10:29
par zeus
Est-ce que tu utilises encore copy() ou est-ce que tu utilises move_uploaded_file()

Posté : 09 mai 2006, 10:30
par marie
j'ai testé les deux sans résultat