Upload de fichier .rar - PHP  

Forum > PHP > Upload de fichier .rar

Upload de fichier .rar

Membre
# Le 06/10/2012 à 20h23
Bonjour à tous, voila j'ai un petit problème je voudrai uploader des fichiers .rar avec une taille jusqu'à 10m. Cependant je réussi à uploader des fichiers de quelques ko, mais pas des fichiers supérieurs à 1mo. J'ai vérifié au niveau de la taille attendu mais pas de soucis de ce coté là.
Donc il y a surement quelques choses qui ne va pas, merci à vous de m'aider.
Code du formulaire :
  1. <form name="insertion" action="insertion2.php" method="POST" ENCTYPE="multipart/form-data">
  2. <table border="0" align="center" cellspacing="2" cellpadding="2">
  3. <tr align="left">
  4. <td>Nom</td>
  5. <td><input type="text" name="nom"></td>
  6. </tr>
  7. <tr align="left">
  8. <td>Date</td>
  9. <td><input type="text" name="date"></td>
  10. </tr>
  11. <tr align="left">
  12. <td>Document de validation</td>
  13. <td><input type="text" name="doc_val"></td>
  14. </tr>
  15. <tr align="left">
  16. <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
  17. <td>Upload du fichier</td>
  18. <td><input name="fichier" type="file"></td>
  19. </tr>
  20. <tr align="left">
  21. <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
  22. <td>Page r&eacute;sum&eacute;</td>
  23. <td><input name="fichier2" type="file"></td>
  24. </tr>
  25. <tr align="left">
  26. <td>Texte de pr&eacute;sentation</td>
  27. <td><textarea cols=50 rows=6 name="text"></textarea></td>
  28. </tr>
  29. <tr align="center">
  30. <td colspan="2"><input type="submit" value="Ins&eacute;rer"></td>
  31. </tr>
  32. </table>
  33. </form>


Code php de l'insertion :
  1. <?php
  2. //connection au serveur
  3. $cnx = mysql_connect( "localhost", "root", "" ) ;
  4.  
  5. //sélection de la base de données:
  6. $db = mysql_select_db( "projet" ) ;
  7.  
  8. //récupération des valeurs des champs:
  9. //nom:
  10. if(isset($_POST['nom'])) $nom=$_POST['nom'];
  11. else $nom="";
  12. //date:
  13. if(isset($_POST['date'])) $date=$_POST['date'];
  14. else $date="";
  15. //document de validation:
  16. if(isset($_POST['doc_val'])) $doc_val=$_POST['doc_val'];
  17. else $doc_val="";
  18. //projet:
  19. if(isset($_POST['fichier'])) $projet=$_POST['fichier'];
  20. else $projet="";
  21. //text de présentation:
  22. if(isset($_POST['text'])) $text=$_POST['text'];
  23. else $text="";
  24. //page de résumé
  25. if(isset($_POST['fichier2'])) $fichier2=$_POST['fichier2'];
  26. else $fchier2="";
  27. $dossier = 'images/';
  28. $fichier = basename($_FILES['fichier']['name']);
  29. $fichier2 = basename($_FILES['fichier2']['name']);
  30. $taille_maxi = 10000000 ;
  31. $taille = filesize($_FILES['fichier']['tmp_name']);
  32. $extensions = array('.pdf', '.rar');
  33. $extension = strrchr($_FILES['fichier']['name'], '.');
  34. //Début des vérifications de sécurité...
  35. if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
  36. {
  37. $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
  38. }
  39. if($taille>$taille_maxi)
  40. {
  41. $erreur = 'Le fichier est trop gros...';
  42. }
  43. if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
  44. {
  45. //On formate le nom du fichier ici...
  46. $fichier = strtr($fichier,
  47. 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
  48. 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  49. $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  50. if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier) AND move_uploaded_file($_FILES['fichier2']['tmp_name'], $dossier . $fichier2))//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
  51. {
  52. //création de la requête SQL:
  53. $sql = "INSERT INTO projets (nom, date, doc_val, projet_fini, text, presentation)
  54. VALUES ( '$nom', '$date', '$doc_val', '$fichier', '$text', '$fichier2') " ;
  55.  
  56. //exécution de la requête SQL:
  57. $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  58.  
  59. //affichage des résultats, pour savoir si l'insertion a marchée:
  60. if($requete)
  61. {
  62. echo("L&acute;insertion a &eacute;t&eacute; correctement effectu&eacute;e") ;
  63. }
  64. else
  65. {
  66. echo("L&acute;insertion &agrave; &eacute;chou&eacute;e") ;
  67. }
  68. echo 'Upload effectu&eacute; avec succ&egrave;s !';
  69. }
  70. else //Sinon (la fonction renvoie FALSE).
  71. {
  72. echo 'Echec de l'upload !';
  73. }
  74. }
  75. else
  76. {
  77. echo $erreur;
  78. }
  79. ?>
avatar de Tony_
Administrateur
# Le 16/10/2012 à 21h33
Bonsoir.
Je ne sais pas si tu a trouvé une réponse à ton problème mais il s'agit peut-être d'une limitation de la taille d'upload par PHP. Je te suggère d'utiliser la fonction PHP phpinfo(); et de regarder ce qui est inscrit pour les points suivants :
  • upload_max_filesize
  • post_max_size
  • memory_limit

S'il sont inférieur à 10Mo c'est surement la raison du problème et il faudra modifier ces limites.
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
Membre
# Le 16/10/2012 à 21h59
Non j'ai toujours pas trouvé, mais merci pour l'information.