J'ai un probleme avec mes scripts d'upload de fichiers. L'upload fonctionne pour de petits fichiers (png, jpg etc...) mais dès que le fichier dépasse x Mo, impossible de procéder à l'upload avec succès.
Le but de ce script est d'uploader des .mp4 ou des .avi de plusieurs centaine de Mo (le .png a été rajouté pour faire des tests).
Mon formulaire:
<html>
<body>
<form enctype="multipart/form-data" action="fileupload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="100000M" />
Transfère le fichier <input type="file" name="monfichier" />
<input type="submit" />
</form>
</body>
</html>
Mon fileupload.php:<html>
<body>
<?php
ini_set("post_max_size", "100000M");
ini_set("upload_max_filesize", "100000M");
ini_set("memory_limit", -1 );
$nomOrigine = $_FILES['monfichier']['name'];
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("mp4", "avi", "png") ;
if (!(in_array($extensionFichier, $extensionsAutorisees))) {
echo "Le fichier n'a pas l'extension attendue";
} else {
// Copie dans le repertoire du script avec un nom
$repertoireDestination = dirname(__FILE__)."/fichiers";
$nomDestination = "$nomOrigine";
if (move_uploaded_file($_FILES["monfichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
" a été déplacé vers ".$repertoireDestination.$nomDestination;
} else {
echo "Le fichier n'a pas été uploadé (trop gros ?) ou ".
"Le déplacement du fichier temporaire a échoué".
" vérifiez l'existence du répertoire ".$repertoireDestination;
}
}
?>
</body>
</html>
J'obtiens des erreurs comme: Notice: Undefined index: monfichier on line 8
Notice: Undefined index: extension on line 10
Le fichier n'a pas l'extension attendue
alors que je suis en mp4 et que l'upload de petits .png fonctionne.
Dans un deuxième temps j'aimerais mettre en place une progressbar en js.
Comment pourrais-je faire? J'ai fait pas mal de recherches mais j'ai rien trouvé de concluant.
Me conseillez-vous de prendre 1 script déjà fait et si oui lequel?
Merci pour votre aide, je commence à désespérer.