cs_mickael56100
Messages postés94Date d'inscriptionvendredi 12 septembre 2008StatutMembreDernière intervention19 mai 2012
-
13 déc. 2008 à 21:29
cs_mickael56100
Messages postés94Date d'inscriptionvendredi 12 septembre 2008StatutMembreDernière intervention19 mai 2012
-
14 déc. 2008 à 14:31
bonjour tout le monde je poste un message sur le forum car je rencontre un problème pour uploader des vidéos.
Je ne sais pas si c'est un problème d'accolade, en fait lorsque j'essaye d'uploder une vidéo au format .avi, cela recharge la même page mais rien n'est uploader, et il n'y a pas d'insertion ds la base de données.
Pouvez vous m'aidez?
Voici le code de la page index.php?genre=uploadvideo
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 14 déc. 2008 à 01:46
Salut,
A vu de nez ça devrait fonctionner, même si il y a pas mal de choses qui ne vont pas.
Par contre tite question : c'est bien un serveur perso ou dédié que tu as ?
Parce que si ce n'est pas le cas je doute que tu puisses uploader des fichiers de 1Go de cette manière (ni même un de 50Mo)
En plus ce n'est vraiment pas la méthode appropriée pour transférer des fichiers de cette taille.
Regarde dans ton php.ini la valeur de "upload_max_filesize".
cs_mickael56100
Messages postés94Date d'inscriptionvendredi 12 septembre 2008StatutMembreDernière intervention19 mai 2012 14 déc. 2008 à 11:56
J'utilise un serveur perso :s, en ft je pense pas qu'un serveur dédié serait la solution la mieux adapté à mes besoins puisque cet upload permettrait a un artiste d'uploader sur le serveur des vidéos mais cela ne servirait que pour 5/6vidéos.
sinon j'ai un peu modifié le code depuis hier soir voila le nouveau :
<?php
ini_set('memory_limit', 1024000000); // en octets
set_time_limit(1200); // en secondes
//Upload desvidéos pour la galerie personnelle
$perso=isset($_REQUEST['perso']) ? $_REQUEST['perso'] : null;
$ext_admise = array ("avi");
//Si c'est le formulaire de vidéos de galerie perso
if($perso == 'ok'){
//10 vidéos persos dans la galerie maximum
$l=$_SESSION['valid'];
$requ="SELECT COUNT(*) as nbvideogal from video where pseudo='$l'";
$resu=mysql_query($requ,$cnx);
$nbvideogal=mysql_fetch_assoc($resu);
if($nbvideogal['nbvideogal']<10){ $poids_max 1024000000; // Poids max du fichier en octets (1Ko 1024 octets) (ici 1000mo max)
$repertoire = 'videos/'; // Repertoire d'upload
if (isset($_FILES['fichier'])){
// On vérifie le poids de la video (max 1000mo)
if ($_FILES['fichier']['size'] > $poids_max){
$erreur = 'Le poid de la vidéo doit être inférieur à ' . $poids_max/1024000 . 'Mo.
';
}
// On vérifie si le répertoire d'upload existe
if (!file_exists($repertoire)){
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
}
getextension($fichier);
if (!in_array ($extension, $ext_admise)){
$erreur = 'Attention, le fichier que vous venez de sélectionner n\'est pas une vidéo au format valide.';
}
//if (!$result){
//$res_write = fwrite ($logerrorpt, "erreur lors de l'upload : ");
//switch ($erreur){
//case 1: // UPLOAD_ERR_INI_SIZE
//$res_write = fwrite ($logerrorpt, "UPLOAD_ERR_INI_SIZE\r\n");
//echo "Attention le fichier dépasse la taille autorisée par le serveur
";
//break;
//case 2: //UPLOAD_ERR_FORM_SIZE
//$res_write = fwrite ($logerrorpt, "UPLOAD_ERR_FORM_SIZE\r\n");
//echo "Attention le fichier dépasse la taille autorisée par le formulaire
";
//break;
//case 3: //UPLOAD_ERR_PARTIAL
//$res_write = fwrite ($logerrorpt, "UPLOAD_ERR_PARTIAL\r\n");
//echo "Attention, l'upload du fichier a été interrompu
";
//break;
//case 4: // UPLOAD_ERR_NO_FILE
//$res_write = fwrite ($logerrorpt, "UPLOAD_ERR_NO_FILE\r\n");
//echo "Attention, le fichier envoyé à une taille nulle
";
//break;
//}
// Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($erreur)){
echo $erreur;
}
else{
// On définit l'extention du fichier puis on le nomme par le pseudo+time actuel
$extention = '.avi';
$nom_fichier = $l.time().$extention;
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)){
//SI TRAITEMENT A FAIRE SUR LA VIDEO UPLOADE LE FAIRE ICI (ex compression ou copie etc)
//On insere dans la base l'objet html avec la bonne valeur
//on creer la chaine à inserer avec l'objet video et la value avec le chemin de la video uploadee
$object="
<object>
</object>
";
//on insere dans la table VIDEO qui a comme attribut pseudo et video
$req2="INSERT INTO VIDEO(pseudo,video) VALUES('$l','$object')";
$res2=mysql_query($req2,$cnx);
//on indique que la video a bien été uploadee
echo 'Votre vidéo a bien été ajoutée.
';
}
//sinon erreur dans l'upload on le specifie aussi
else{
echo 'La vidéo n\'a pas pu être uploadée.
';
}
}
}
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 14 déc. 2008 à 12:26
ini_set('memory_limit', 1024000000); // en octets
= > file moi l'adresse de ton serveur que je le fasse planter
set_time_limit(1200); // en secondes
=> 1Go en 20 minutes ... c'est mal barré si tu as une connexion traditionnelle. Imagine 2,3 upload + 1 visualisation en même temps.
Tu ne dis pas si cela fonctionne désormais, mais j'ai déjà la réponse => NON
As tu regardé la valeur de upload_max_filesize dans le php.ini comme je l'indiquai ?
Hormis les nombreuses erreurs qu'il y a dans ton script la méthode que tu emploies ne fonctionnera jamais :
1Go sur le web => même pas la peine d'y penser dans ta configuration et avec ta méthode. Pense au streaming, à la
compression des videos envoyées, au FTP.
cs_mickael56100
Messages postés94Date d'inscriptionvendredi 12 septembre 2008StatutMembreDernière intervention19 mai 2012 14 déc. 2008 à 13:02
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 16M ; Maximum amount of memory a script may consume (16MB)
Quels sont les nombreuses erreurs de mon script?
Vous n’avez pas trouvé la réponse que vous recherchez ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 14 déc. 2008 à 13:58
Je ne veux pas y mettre de la mauvaise fois mais il y en a des dizaines !!!
Par exemple :$ext_admise array ("avi");> un array pour définir un seul élément ?? => $ext_admise = 'avi';
$extention = '.avi';
$nom_fichier $l.time().$extention;> $nom_fichier = $l.time().'.'.$ext_admise; //inutile de redéfinir une variable alors qu'elle l'est déjà
$req2="INSERT INTO VIDEO(pseudo,video) VALUES('$l','$object')";
=> et si $_SESSION['valid'] n'est pas définie, ça donne quoi ?
=> pourquoi stocker du code HTML dans la base de données ? l'alourdir ? poser des problèmes avec les caractères spéciaux ?
// On vérifie si le répertoire d'upload existe
if (!file_exists($repertoire)){
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
}
=> là aussi ça ne sert à rien, le répertoire existe, c'est toi qui l'a créé une fois pour toute, inutile de faire la vérif
etc ... etc ...
Dis moi, la valeur de upload_max_filesize est classée top secret chez toi ou ai je omis de te la demander déjà deux fois ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 14 déc. 2008 à 14:22
Donc ça ne marchera jamais, il faudrait passer cette valeur à 1Go, mais, comme je te l'ai dit plusieurs fois, ton projet ne fonctionnera jamais correctement de cette manière. Non seulement tu vas finir par planter ton serveur, mais en plus les navigateurs qui vont accéder à ta page.
ini_set('memory_limit', 1024000000); = > tu affectes 1Go de RAM rien que pour PHP, c'est énorme, même dans le cas incertain où tu aurais 20Go de RAM
set_time_limit(1200); // en secondes
=> je répète, ça n'est pas suffisant pour transférer des fichiers de 1Go
upload_max_filesize 2M> cela signifie que la taille maximale des fichiers uploadés est de 2Mo, toi tu souhaites uploader des fichiers de 1Go => pb
Repense ton projet pour qu'il soit viable sur le net. Dans le cas contraire je ne peux plus rien faire pour toi.