Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'aimerait ici pouvoir upload une vidéo, le script fonctionne mais j'ai un léger soucis.

<form action="" method="POST" enctype="multipart/form-data">

Video file directory path: <input type="file" name="video"><br/>

<input type="submit" name="Upload" value="Upload">

</form>

<?php
//This function reads the extension of the file to ensure that it is an video file

function getExtension($str) {
$i = strrpos($str,".");
if (!$i)
return "";
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}

//This variable handles an error and won't upload the file if there is a problem with it

$errors=0;

//checks if the form has been submitted

if(isset($_POST['Upload']))
{

//récuperer le nom du fichier
$file = $_FILES['video']['name'];
print_r($_FILES);

//si c'est pas vide
if ($file)
{

$video_filename = stripslashes($file); // maVideo.avi
$video_extension = getExtension($video_filename); // Avi

//vérification de l'extension
$extension_valide = array('mpeg','avi','jpg','mp4','mov','mp3');
if (!in_array(strtolower($video_extension), $extension_valide)) // faux
{
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else // bon
{
//récupérer la size de la video
$video_size= filesize($_FILES['video']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($video_size > 110000000)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}

//give the video a unique name in case a video already exists with the name on the server
$video_name =time().'.'.$video_extension;

//assign a folder to save the video to on your server
$newname="videos/".$video_name;

//verify that the video has been loaded
if ($errors == 0){
if (move_uploaded_file($_FILES['video']['tmp_name'], $newname) == 1)
echo "<h1>File Uploaded Successfully! Try again!</h1>";
else
echo "erreur lors de téléchargement";
}
}
}
}else
echo 'noooooooooooooooo';
?>

Ce que je veux

Sauf qu'au moment d'upload (comme youtube) sa prend longtemp et j'aimerait savoir s'il est possible de mettre une sorte de barre qui pourrais indiqué le temp restant d'upload (comme youtube)

Ce que j'obtiens

Ba j'obtient juste un chargement j'aimerait ajouté ce que j'ai fait part plus haut.

12 réponses


Tu peux regarder du coté de la fonctionnalité upload progress

Tu l'as bien fait en ajax?

@AkexJM et @Benjamin Derepas,
J'ai tenté l'upload progress mais je n'arrivent pas a l'intégré et j'ai pas compris ton histoire d'ajax ? x)

Ajax: asynchronious javascript and XML, en faite ca permet de faire une requête sans rafraichir toute la page (par exemple sur facebook, en réalité tu ne changes jamais de page, par exemple sur certains chats qui se rafraichissent tout seul)
Il me semble (je ne mettrais pas ma main à couper) que si tu veux faire un système de progression, tu dois faire otn upload de vidéos en ajax, sans changement de page ;)

Je ne gère pas l'ajax donc c'est un peut chaud (C'est un projet pour mon collège).

@MrReskill , essais déjà de te renseigner sur jquery et son module Ajax (get,post,json), et une fois aquis, regarde cet article .
Il faudra bien sur adapter le code à ton problème (hehe c'est pas drôle sinon )

Ok j'ai réussi a adapté le script au mien le seul soucis est qu'il ne peut ducoup upload seulement des images ;s

Tu dois adapter la partie PHP

Bien je l'ai pourtant adapté vue que regarde mon code de base, j'ai mis les extensions autorisé hors elle ne le sont pas :O

Partage nous ton code sur https://codeshare.io/ par exemple pour qu'on vois ça

Alors ? Bon je sait pas si sa a une logique mais je débute :(