UPLOAD de fichier fonction ftp

UPLOAD de fichier fonction ftp - PHP - Programmation

Marsh Posté le 27-04-2005 à 11:39:48    

Salut à tous, phpman et woman, voila je deviens completement dingue  :pt1cable:  :pt1cable: J'ai un upload de fichiers qui marche impek sur mon site, pour les fichiers inférieurs à 1,5Mo on va dire, et si le fichier est supérieur, au bout d'un certain temps l'upload echou. Le problème est que je n'ai pas accès au max_execution_time  et au php.ini (ce qui pose un chti pb pour modifier les valeurs par défaut, de plus j'ai entendu dire qu'il ne faut pas modifier le post_max_size sous peine d'avoir quelques soucis.  
Hors j'aimerais (et d'ailleur ce n'est pas que j'aimerais c'est qu'il le faut lol) que mes clients puissent uploader des fichiers inférieurs ou egaux à 50Mo... (rassurez vous j'ai modifier dans le formulaire le max_size_uploaded à la bonne valeur)
J'ai recherché sur de nombreux forums (dont celui ci) mais sans résultat (pas du moins ce que je recherche) mais je me vois dand l'obligation de poster un message pour que vous m'aidiez.
Je recherche donc déjà le moyen de modifier par code php les parametres du code php.ini et une fonction ftp en php qui permettrais à mes clients d'uploader des fichiers volumineux... (inférieur à 50Mo) j'ai remarqué que des gens y étaient arrivés mais ils n'expliques pas comment..
en espérant que vous pourrez m'aider, je n'ai pas de code d'upload à vous proposer (à par celui qui marche). Je ne souhait pas avoir de barre de défilement (même si ça rajouterais un peu plus de tuning au site  :whistle: ) mais je souhait déjà que ça marche , c'est le principal.. Dans l'attente d'une réponse qui j'espère m'aidera je vous souhaite une agréable journée, Merci à vous d'avoir lu ce roman  :jap:  :lol:  

Reply

Marsh Posté le 27-04-2005 à 11:39:48   

Reply

Marsh Posté le 27-04-2005 à 11:42:32    

Pourquoi tu peut pas modifier directement le php.ini?
Pour tu mets pas ton code, ca peut aider.

Reply

Marsh Posté le 27-04-2005 à 11:46:17    

je peut pas modifier directement le php.ini car je n'ai pas accès à ce fichier :D j'ai les coordonnées du compte ftp mais je n'ai pas accès au fichier :( et pour les bouts de codes je n'en ai pas à proposer, (à par ceux qui marche mais c'est u nmove_uploaded_files ce tout ce qu'il y à de plus simple ;)) voila, et je vois pas comment utiliser les ftp_fput et autres, c'est ça le pb... Une solution?

Reply

Marsh Posté le 27-04-2005 à 11:49:27    

Euh juste comme ca, t'a combien d'espace sur ton FTP?
Je peut pas trop t'aider là.

Reply

Marsh Posté le 27-04-2005 à 11:53:47    

oula beaucoup d'espace, ce n'est pas ça le problème...
voila le code pour l'upload actuel si tu ve...

Code :
  1. //------------------------
  2. //--- upload des fichiers|
  3. //------------------------
  4.     $repertoireDestination = "../../files/$nom/";
  5.     $nomorigine = $_FILES["monfichier"]["name"];
  6.     $nomDestination = $_FILES["monfichier"]["name"];
  7.     // Pour raison de sécurité nous ajouterons aux fichiers
  8.     // portant une extension .php .php3, l'extension .txt
  9.     $php = ".php";
  10.     $repl = ".txt";
  11.     $nomDestination = str_replace($php, $repl,$nomDestination);
  12.     if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
  13.         if (@rename($_FILES["monfichier"]["tmp_name"],
  14.                    $repertoireDestination.$nomDestination)) {
  15.             echo "<br>Le fichier à bien été inséré dans le répertoire ".$repertoireDestination.$nomDestination;
  16.         } else {
  17.             echo "<br>Le déplacement du fichier temporaire a échoué <br>".
  18.                  " vérifiez l'existence du répertoire ".$repertoireDestination. " ou bien si le fichier n'est pas déjà présent dans ce répertoire <br>";
  19.        }         
  20.     } else {
  21.        echo "<br>ECHEC ... Le fichier n'a pas été uploadé <br>
  22. Attention le fichier .exe ne peut être uploader par mesure de sécurité";
  23.     exit;
  24. }


 
ça ça marche nikel, mais IE me plante tout lorsque j'ai un gros fichier, c'est pour ça que je souhaite changer avec du code si c'est possible les configs du php.ini juste pour l'execution de ce script et passer par la voie ftp_fput ou ftp du moin pour le plus etre ennuyé (mais je beug) si tu à une solution pour permettre l'upload de très gros fichiers en gros c'est ce que je demande :)

Reply

Marsh Posté le 27-04-2005 à 11:56:15    

micfont999 a écrit :

je peut pas modifier directement le php.ini car je n'ai pas accès à ce fichier :D j'ai les coordonnées du compte ftp mais je n'ai pas accès au fichier :( et pour les bouts de codes je n'en ai pas à proposer, (à par ceux qui marche mais c'est u nmove_uploaded_files ce tout ce qu'il y à de plus simple ;)) voila, et je vois pas comment utiliser les ftp_fput et autres, c'est ça le pb... Une solution?


 
Les fonctions ftp servent pas à ça. A part ça si le serveur a un max time c'est qu'il y a une raison. P-e que les personnes qui y sont arrivées uploadaient depuis une tres grosse connection ... Mais je vois pas trop ce que tu pourrais faire


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-04-2005 à 11:59:16    

?? on peut rien faire?? ça veut dire que je peux pas permettre à mes clients d'uploader de gros fichier? ça va poser problème sachant que l'interface que je prépare sert normalement à résoudre ce pb, alors si on peut pas, il va po etre content, o la la ... mdr, il n'y à vraiment pas de solution?

Reply

Marsh Posté le 27-04-2005 à 12:07:36    

Heu question conne, le serveur tourne bien en safe mode ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-04-2005 à 14:07:13    

voila les valeur que j'obtien avec un phpinfo
safe_mode
 Off Off  
safe_mode_exec_dir
 no value no value  
safe_mode_gid
 Off Off  
safe_mode_include_dir
 no value no value  
 
donc je pense si je suis pas trop mauvais en anglais que la réponse est non... snif, ça sent mauvais cette histoire je sent que je suis pas couché moi... HELP please

Reply

Marsh Posté le 27-04-2005 à 14:30:25    

Tu y vas tout seul ou je te lance avec mon lance boulay jusqu'a la doc PHP? Genre ini_set & co ? :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-04-2005 à 14:30:25   

Reply

Marsh Posté le 27-04-2005 à 15:05:45    

Tu peut m'expliquer par exemple la synthaxe avec ini_set pour modifier le temps des requetes max_execution_time please :)

Reply

Marsh Posté le 27-04-2005 à 15:08:38    

Juste un truc pour etre sur, tu es sur a 100% que c'est ton script qui plante et non pas le transfere?  
Parceque lors d'un Upload, le script php s'execute apres la fin du upload du fichier... et donc si c'est le temps d'upload qui depasse... bein le ini_set max_execution_time il va servir a rien ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-04-2005 à 15:13:41    

Bin je sais pas moi ce qui plante, je sais juste qu'un fichier de 2Mo passera, mais un fichier de 4Mo ne passera pas. Après je ne sais pas à quoi c'est du, comment puis je le savoir.. Si ça marche avec l'un ça devrai marcher avec l'autre vu que j'ai mi le max_size au niveau du formulaire à 50Mo... et tout type de fichier passe, précision (sauf les .exeet je renomme les .php) mais c'est tout...

Reply

Marsh Posté le 27-04-2005 à 15:14:36    

sinon j'ai mi cela, mais je sais pas si c'est la bonne synthaxe

Code :
  1. ini_set(max_execution_time,0);

Reply

Marsh Posté le 27-04-2005 à 15:33:21    

Alors je viens d'utiliser en début de code  

Code :
  1. ini_set(max_execution_time,"0" );
  2. ini_set(post_max_size,"50M" );


 
et en fait il mouline il mouline et à la fin il me met  
 
ECHEC ... Le fichier n'a pas été uploadé  
Attention le fichier .exe ne peut être uploader par mesure de sécurité
 
la phrase qui correspond à l'erreur d'upload de mes fichiers (cf. le code au dessus)  
 
Voila mon code final :  

Code :
  1. session_start();
  2. include('../../connexion/_connexion.php');
  3. $cx=mysql_connect("$host","$user","$pass" );
  4. $base=mysql_select_db("$bdd" );
  5. ini_set(max_execution_time,"0" );
  6. ini_set(post_max_size,"50M" );
  7. // import du nom de la société en POST
  8. $nom = addslashes($_POST['nom']);
  9. // creation de la date format bdd et français
  10. $date = date("Y-m-d" );
  11. $date02 = date("d-m-Y" );
  12. //---------------------------------------------------------------------------------------------
  13. //---verification de toutes les données pour voir si tous les champs sont correctement remplis|
  14. //---------------------------------------------------------------------------------------------
  15. // si le nom n'est pas remplis
  16. if($nom=="" ){
  17.     $erreur01="veuillez rentrer le nom de la société concernée svp !!";
  18.     echo"$erreur01<br>";
  19.     exit;
  20. }
  21. //------------------------
  22. //--- upload des fichiers|
  23. //------------------------
  24. // upload du fichier avec comme nom societe - date - nom fichier
  25.     $repertoireDestination = "../../files/$nom/";
  26.     $nomorigine = $_FILES["monfichier"]["name"];
  27.     $nomDestination = $_FILES["monfichier"]["name"];
  28.     // si l'on souhaite insérer dans le nom du fichier le nom de la société et la date
  29.     // $nomDestination        = $nom." - ".$date02." - ".$_FILES["monfichier"]["name"];
  30.     // Pour raison de sécurité nous ajouterons aux fichiers
  31.     // portant une extension .php .php3, l'extension .txt
  32.     $php = ".php";
  33.     $repl = ".txt";
  34.     $nomDestination = str_replace($php, $repl, $nomDestination);
  35.     if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
  36.         if (@rename($_FILES["monfichier"]["tmp_name"],
  37.                    $repertoireDestination.$nomDestination)) {
  38.             echo "<br>Le fichier à bien été inséré dans le répertoire ".$repertoireDestination.$nomDestination;
  39.         } else {
  40.             echo "<br>Le déplacement du fichier temporaire a échoué <br>".
  41.                  " vérifiez l'existence du répertoire ".$repertoireDestination. " ou bien si le fichier n'est pas déjà présent dans ce répertoire <br>";
  42.        }         
  43.     } else {
  44.        echo "<br>ECHEC ... Le fichier n'a pas été uploadé <br>
  45. Attention le fichier .exe ne peut être uploader par mesure de sécurité";
  46.     exit;
  47. }


 
Donc il m'affiche la dernière phrase d'erreur, et les fichiers inférieurs à environ 2Mo sont bien uploadés...

Reply

Marsh Posté le 27-04-2005 à 15:54:01    

personne d'autre n'a la solution, je vien de faire des test, 2Mo ça passe, au dessus ça ne passe plus...:( au moins on est fixé sur la taille... j'ai rajouté un

Code :
  1. ini_set(upload_max_filesize,"50M" );

au cas ou, mais ça ne marche toujours pas, HELP HELP...

Reply

Marsh Posté le 27-04-2005 à 16:10:30    

ton formulaire est bien en post ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 27-04-2005 à 16:42:48    

wi :D

Reply

Marsh Posté le 27-04-2005 à 17:15:13    

Hello
 
la configuration "post_max_size" ne peut pas être modifiée par la fonction ini_set().
La seule solution est de modifier le php.ini, ou de modifier sa valeur dans la config du virtual host de Apache ou un fichier .htaccess avec la ligne "php_value post_max_size 50M"

Reply

Marsh Posté le 27-04-2005 à 17:23:38    

hurss oki, mais pourquoi alors qu'elle est par défaut à 8Mo je n'arrive pas à uploader des fichiers de 3 - 4 Mo?? Snif, c quoi ce bin's?

Reply

Marsh Posté le 27-04-2005 à 17:27:30    

es-tu certain qu'elle soit à 8M?
Pour t'en assurer: php_info() ou ini_get('post_max_size')

Reply

Marsh Posté le 27-04-2005 à 17:34:48    

wi wi j'ai looker, et il me met bien 8M
c louche ce truc :D

Reply

Marsh Posté le 27-04-2005 à 17:36:24    

Lol question con...très très con...il reste de la place au moins ?

Reply

Marsh Posté le 27-04-2005 à 17:36:41    

Bah on sais jamais.....il ne faut écarter aucune hypothèse

Reply

Marsh Posté le 27-04-2005 à 17:39:17    

et la configuration "upload_max_filesize", l'as-tu vérifiée?

Reply

Marsh Posté le 27-04-2005 à 17:57:26    

voui voui j'ai tout verifier, il reste tout plein de places (le ftp est tout vide :) )

Reply

Marsh Posté le 27-04-2005 à 18:12:07    

bah alors je suis dsl, mais je vois pas du tout d'où cela peut venir......

Reply

Marsh Posté le 28-04-2005 à 09:07:47    

wi moi non plus nan mais ce n'est pas grave, on à expliqué à nos clients que le principe de http n'était pas prévus pour le transfert de gros fichiers, et qu'il sera plus simple de ce faire parvenir les fichiers de taille importante par la poste sur cd...
Alors bon voila, mais je trouverais un jour le moyen (quand j'aurais le temps) de régler ça car ça peut etre vraiment bien..
en tout cas merci de vous etre penchés sur le phénomène mystérieux et paranormal d'un upload de plus de 2Mo mdr :D :D Merci encore à vous...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed