A
Anonyme
Invité
Bonjours,
Alors voilà afin de permettre l'upload sur mon serveur au travers d'une page web j'ai 2 fichier :
le fichier upload.html contenant ce code :
<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000000000">
Fichier à m'envoyer :<input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
Et le fichier upload.php contenant ce code :
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 10000000000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt', '.mp3', '.avi', '.rar');
$extension = strrchr($_FILES['avatar']['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 png, gif, jpg, jpeg, txt ou doc...';
}
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['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectue avec succes !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Mon problème est que l'upload fonctionne tant que celui-ci ne dépasse pas 1mo, par contre au dessus de cette taille, ça me renvoi sur "Echec de l'upload" et d'après ce que je vois c'est suite au codage du nom du fichier, mais mon fichier se nomme toto.mp3 ou toto.jpg, et comme vous pouvez le voir j'ai modifié la taille maximal des fichier pouvant -être uploader.
Alors d'ou vient mon problème ???
Merci çà tous pour votre aide.
Alors voilà afin de permettre l'upload sur mon serveur au travers d'une page web j'ai 2 fichier :
le fichier upload.html contenant ce code :
<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000000000">
Fichier à m'envoyer :<input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
Et le fichier upload.php contenant ce code :
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 10000000000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.txt', '.mp3', '.avi', '.rar');
$extension = strrchr($_FILES['avatar']['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 png, gif, jpg, jpeg, txt ou doc...';
}
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['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectue avec succes !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Mon problème est que l'upload fonctionne tant que celui-ci ne dépasse pas 1mo, par contre au dessus de cette taille, ça me renvoi sur "Echec de l'upload" et d'après ce que je vois c'est suite au codage du nom du fichier, mais mon fichier se nomme toto.mp3 ou toto.jpg, et comme vous pouvez le voir j'ai modifié la taille maximal des fichier pouvant -être uploader.
Alors d'ou vient mon problème ???
Merci çà tous pour votre aide.