Posez votre question Signaler

Upload PHP [Résolu]

duchnoki 129Messages postés 12 octobre 2008Date d'inscription 30 novembre 2010Dernière intervention - Dernière réponse le 10 jui 2009 à 12:54
Bonjour,
Je voudrais que l'on puisse uploader des videos sur mon site inranet (http://localhost/videos/upload.php).
J'ai trouvé un script sympa ici : http://antoine-herault.developpez.com/tutoriels/php/upload/#L3.3
<?php
$dossier = 'upload/'; //<= Problème n°1 : Que dois-je marqué ici pour que la video soit uploader dans http://localhost/video/
$fichier = basename($_FILES['video']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['video']['tmp_name']);
$extensions = array('.flv', '.avi', '.wmv', '.mp4');
$extension = strrchr($_FILES['video']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type flv, avi, wmv, mp4 !';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['video']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
J'ai essayer de mettre 'videos/' comme valeur de la variable $dossier et est tester mais il marque : Echec de l'upload !
Merci d'avance pour votre aide, Duchnoki
Lire la suite 

Upload PHP »

13 réponses
Réponse
+2
moins plus
<h2>Envoyer un fichier ('flv' | Taille: moins de 500mo)</h2>
<p>
<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 500000000) //500000000 = 500mo
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array( 'flv'); //typr de fichier (ici .flv, pour les vidéos)
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'fichier/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
?>

<form method="post" enctype="multipart/form-data">
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer le fichier" />
</p>
</form>
Je t'ai graissé et souligné ce qu'il faut remplacé. 500000000 c'est la taille du fichier (=500mo), flv c'est le type de fichier et fichier c'est le nom du dossier.

Attention le chemin vers le dossier et celui de cette feuille .php vers le dossier
Ajouter un commentaire
Réponse
+0
moins plus
met "./" à la place de "upload/"
Ajouter un commentaire
Réponse
+0
moins plus
Je vais voir...
Ajouter un commentaire
Réponse
+0
moins plus
Non, désolé, il dit toujours Echec de l'upload !
Ajouter un commentaire
Réponse
+0
moins plus
et tu a modifier les valeurs d'upload maximales dans ton fichier de configuration ?
Ajouter un commentaire
Réponse
+0
moins plus
Heu
tu veux uploader dans le dossier videos
et tu appelles ton dossier upload ...

c'est
$dossier = '/videos/';
Ajouter un commentaire
Réponse
+0
moins plus
Et tu a modifier les valeurs d'upload maximales dans ton fichier de configuration ?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Ben... :
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "c:/wamp/tmp"

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
Ajouter un commentaire
Réponse
+0
moins plus
Heu
tu veux uploader dans le dossier videos
et tu appelles ton dossier upload ...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Non, j'ai déjà essayer de mettre la variable $dossier a '/video/'
Mais sa marche toujours pas !
Ajouter un commentaire
Réponse
+0
moins plus
Cette fois, il ne dit rien.
Ajouter un commentaire
Réponse
+0
moins plus
J'ai ajouté echo $_FILES['monfichier']['error'] et il marque 2, et d'après ce tuto : http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
c'est UPLOAD_ERR_FORM_SIZE.
Est-ce-que quelqu'un pourrait me traduire ce que UPLOAD_ERR_FORM_SIZE veut dire et comment réparer cette erreur ?
Merci !
Si je supprime <input type="hidden" name="max_file_size" value="1024"> il dit 1 donc UPLOAD_ERR_INI_SIZE.
Ajouter un commentaire
Réponse
+0
moins plus
J'ai compris : UPLOAD_ERR_FORM_SIZE c'est taille du fichier trop grande (dans le formulaire) et UPLOAD_ERR_INI_SIZE c'est taille du fichier trop grande (dans php.ini).
Mais si j'envoie un fichier plus petit que 2M, il dit :

Warning: move_uploaded_file(videos/page_php - Copie.flv) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\videos\add.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php7AA6.tmp' to 'videos/page_php - Copie.flv' in C:\wamp\www\videos\add.php on line 15
L'envoi a bien été effectué !0
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon, j'ai fait quelque modification et ça marche, mais j'aimerais uploader un vidéo qui fait 2,17 Mo, combien dois-je mettre de M ????
Ajouter un commentaire
Réponse
+0
moins plus
Ok, c'est bon, il suffisait de mettre 500000000 dans le fichier de configuration php (php.ini), DE REDEMARRER WAMP SERVER (je le met en MAJ. car c'est l'erreur que j'ai fait) et de modifier move_uploaded_file($_FILES['monfichier']['tmp_name'], 'fichier/' . basename($_FILES['monfichier']['name'])); par move_uploaded_file($_FILES['monfichier']['tmp_name'], './' . basename($_FILES['monfichier']['name']));

Merci a tous pour votre aide !!!! :)
Ajouter un commentaire
Ce document intitulé « Upload PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook