Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1629 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] ftp_put et php, mission impossible ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[PHP] ftp_put et php, mission impossible ?

n°498749
korny
Posté le 26-08-2003 à 17:32:35  profilanswer
 

voilà, ca commence a faire pas mal de tempps que je lutte, que je cherche, et je trouve rien ..
La fonction ftp_put marche t'elle vraiment  lorsque l'on souhaite uploader un fichier local sur un serveur FTP ?
j'ai essayé moultes facon différentes, j'arrive a rien.. et sur la plupart des forum, cette meme question revient souvent, mais sans réponses ..
 
toujours la meme  erreur : Warning: ftp_put(): error opening logo2.gif in /var/www/html/korny/sendimage.php on line 35
 
 
une lumiere, une idée ? ?

mood
Publicité
Posté le 26-08-2003 à 17:32:35  profilanswer
 

n°498803
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 17:55:06  profilanswer
 

code ?
t'as un formulaire d'upload ?  [:troa]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°498820
korny
Posté le 26-08-2003 à 18:04:40  profilanswer
 

j'ai un formulaire, puis le code apres pour uploader  
 
 
mon formulaire :
 

Code :
  1. <html>
  2. <body marginwidth=4 marginheight=4 topmargin=4 leftmargin=4 bgcolor=white vlink="#0000ff" link="#0000ff">
  3. <form name="Attachments"  method=POST action="sendimage.php" enctype="multipart/form-data">
  4. <input type="hidden" name="MAX_FILE_SIZE" value="1000">
  5. Send this file: <input name="userfile" type="file">
  6. <input type="submit" value="Send File">
  7. </form>
  8. </body>
  9. </html


 
 
 
 
 
 
le sendimage.php :
 
 

Code :
  1. <?php
  2.      
  3.     $ftp_server='toto.no-ip.org';//serverip
  4.     $conn_id = ftp_connect($ftp_server);
  5.  
  6.    
  7.     $user="xxx";
  8.     $passwd="xxx";
  9.     $login_result = ftp_login($conn_id, $user, $passwd);
  10. // Test connection ftp
  11.    if ((!$conn_id) || (!$login_result)) {
  12.         echo "FTP connection has failed!";
  13.         echo "Attempted to connect to $ftp_server for user $ftp_user_name";
  14.         die;
  15.     } else {
  16.         echo "<br>Connected to $ftp_server, for user $user<br>";
  17.     }
  18. ftp_chdir($conn_id, "images" );
  19. // récupération du fichier à uploader
  20. $files=$_FILES['userfile']['name'];
  21. //fichier de destination
  22. $destination_file="x.jpg";
  23. //upload
  24. $upload = ftp_put($conn_id,$destination_file, $files, FTP_BINARY);
  25. // test du bon déroulement de l'upload
  26. if (!$upload) {
  27.         echo "FTP upload has failed!";
  28.     } else {
  29.         echo "Uploaded $user_file to $ftp_server as $destination_file";
  30.     }
  31. // close ftp
  32. ftp_close($conn_id);
  33. ?>


 
 
rem :
 
j'ai un petit doute du fonctionement de la récupération du fichier source. Sur certains tutoriaux, j'ai vu juste $user_file. Mais moi ca ne marche pas : il faut que je passe par un $files=$_FILES['userfile']['name'];
 

n°498823
korny
Posté le 26-08-2003 à 18:06:44  profilanswer
 

dans les logs de mon serveur ftp, je vois bien une tentative de connection de mon pc client, qui essaye d'uploader  
 
je le vois ariver : connection ok
je le vois passer dans le repertoire images : ok
 
et apres, paf, conection closed

n°498829
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 18:13:25  profilanswer
 

ton serveur FTP c'est apache ?
 
essaie en faisant pointer le fichier de destination dans /tmp/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°498842
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 18:33:30  profilanswer
 

au fait .. il t'affiche quoi $files ???


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°498845
korny
Posté le 26-08-2003 à 18:36:46  profilanswer
 

c'est un apache, oui
et le php, c PHP 4.2.2  
 
 
 
si je fais pointer dans /tmp/, c'est pareil. De toute facon j'ai bien vérifié les droits de /images/ c'est good :)
 
 
sinon, si j'affiche $files tout connement .... j'ai rien [:proy]

n°498848
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 18:39:27  profilanswer
 

korny a écrit :


 
sinon, si j'affiche $files tout connement .... j'ai rien [:proy]
 


ben c'est p'tet  ca le problème  [:spamafote]  
s'il na pas de source ....:/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°498891
korny
Posté le 26-08-2003 à 19:43:01  profilanswer
 

quand $files est vide, le message d'erreur est  

Warning: ftp_put(): error opening in /var/www/html/korny/sendimage.php on line 35  

 
Si j'ai un $file=logo2.gif, à mon avis, on va retrouver le message d'erreur initial , cad :  

Warning: ftp_put(): error opening logo2.gif in /var/www/html/korny/sendimage.php on line 35

 
 
donc.. je sais pas si le probleme vient réellement de là .. !

n°498900
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 19:59:59  profilanswer
 

:whistle: ......remplaces  

Code :
  1. $files=$_FILES['userfile']['name'];


 
par  
 

Code :
  1. $files=$_FILES['userfile']['tmp_name'];


 
 
 :hello:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
mood
Publicité
Posté le 26-08-2003 à 19:59:59  profilanswer
 

n°498910
korny
Posté le 26-08-2003 à 20:13:57  profilanswer
 

ah .. pas bete, ca serait peut etre une histoire de chemin..
sauf que  
 
$files=$_FILES['userfile']['name'];  
 
j'ai logo2.gif
 
 
$files=$_FILES['userfile']['tmp_name'];
 
j'ai rien !!!
alors que si j'ai bien compris, il me faudrait le chemin complet ...

n°498925
simogeo
j'ai jamais tué de chats, ...
Posté le 26-08-2003 à 20:36:59  profilanswer
 

j'ai testé ton script chez moi en local ... avec le nom temporaire ca fonctionne tres bien ... ct ca la merde  [:spamafote]
 
edit : ah oui, $_FILES['userfile']['tmp_name'] est le nom temporaire du fichier  ;)


Message édité par simogeo le 26-08-2003 à 20:38:27

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°498952
korny
Posté le 26-08-2003 à 21:27:05  profilanswer
 

bah merde ! j'ai  pas de chance !! ca passe pas ...
 
en passant tmp_name
 
si je fais un echo du $files  j'ai rien ..
par contre, si je remet "name" au lieu de tmp_name, je retrouve mon logo2.gif ..
 
je comprends plus !!
 
le nom temporaire du fichier, il doit bien s'afficher si je lui demande avec echo "$files"; non ?
 

n°499253
korny
Posté le 27-08-2003 à 09:06:08  profilanswer
 

up !

n°499272
simogeo
j'ai jamais tué de chats, ...
Posté le 27-08-2003 à 09:22:45  profilanswer
 

t'es sur de pas avoir fait d'ereur ?  :o (parce que c'est quand meme etonnant que ca marche chez moi et pas chez toi   :sarcastic:  )
ou alors pb de config ... [:spamafote]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°499284
korny
Posté le 27-08-2003 à 09:43:25  profilanswer
 

j'en suis sur, oui :/
 
si je fais un echo de $files    
 
($files=$_FILES['userfile']['tmp_name']; )
 
 
j'ai rien ..
et toi, il t'affiche qquchse ?

n°499561
korny
Posté le 27-08-2003 à 13:30:34  profilanswer
 

:bounce:

n°499663
simogeo
j'ai jamais tué de chats, ...
Posté le 27-08-2003 à 14:54:22  profilanswer
 

korny a écrit :

j'en suis sur, oui :/
 
si je fais un echo de $files    
 
($files=$_FILES['userfile']['tmp_name']; )
 
 
j'ai rien ..
et toi, il t'affiche qquchse ?


biensur .. le nom temporaire  [:spamafote]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°499667
korny
Posté le 27-08-2003 à 14:57:33  profilanswer
 

bon ... je c pas d'ou ca bien alors
j'ai vraiment pas de chance :cry:

n°500285
korny
Posté le 28-08-2003 à 10:07:23  profilanswer
 

allez, encore un up rempli de desespoir  :cry:

n°500639
beleg
黑社會
Posté le 28-08-2003 à 15:42:26  profilanswer
 

tas un probleme avec ton upload http. (entre ton pc et le serveur).
 
Quel est la taille de ton image car :
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
 
ca fait pas bcp ... meme pas un ko ?

n°500740
korny
Posté le 28-08-2003 à 16:43:32  profilanswer
 

:):) ... :/ :/  .. :(:(
 
 
:):) -> car y'avait bien le coup du value=1000 !
:/:/ -> ca a pas marché longtemps
:(:( -> Les fichiers images qui arrivent sont tronqués !!
         Le JPG est dégueulasse, le haut est correct, et apres ca part en live, on reconnait pas l'image
 
 
et ce probleme, je l'ai avec l'upload classique par php ..
je suppose donc qu'un ftp_put fonctionne comme ca :
 
1/upload classique du fichier en php
2/ftp sur le host souhaité, et UL du fichié uploadé en 1/
 
 
donc .. ca doit etre mon upload en php qui merde alors ..
Je suis donc encore plus dans la merde, car le résultat est dégueu, l'image est ok au début, et entre les 2 y'a que l"upload en php .. Il est ou ce probleme !!?? l'upload ?

n°500768
beleg
黑社會
Posté le 28-08-2003 à 17:18:29  profilanswer
 

Citation :


et ce probleme, je l'ai avec l'upload classique par php ..  
je suppose donc qu'un ftp_put fonctionne comme ca :  
 
1/upload classique du fichier en php  
2/ftp sur le host souhaité, et UL du fichié uploadé en 1/  


 
non, FTP_PUT recopie le fichier du serveur ou sont les scripts PHP vers le serveur FTP ou tu ouvert une connection.
 
Mais tu as raison c surement lupload du fichier qui fonctionne mal.
Cet upload na rien a voir avec PHP, c de HTTP, php nest la que pr traiter le fichier une fois arrivé.
 
1 / si tu peux, regarder le fichier ds le repertoire temporaire pr voir si il est tronqué.  
===> chemin du fichier : $_FILES['userfile']['tmp_name'];  
 
2/ si tu peux pas, un copy ou move_uploaded_file mais cest un peu ce que tu fais dans ton autre topic et donc ... ca deviendrait un probleme de config serveur ?
 

n°504206
korny
Posté le 01-09-2003 à 14:56:02  profilanswer
 

je n'arrive pas a visualiser le fichier tmp ... :(
 
ce que je comprends pas, c'est que j'arrive, à transferer un fichier GIF de 12 Ko  
par contre, le GIF de 150 Ko, il transfert, mais devient tout dégueulasse arrivé à destination ...
ca m'énerve !!
 
:bounce:

n°504248
korny
Posté le 01-09-2003 à 15:36:20  profilanswer
 

je confirme que ca ne vient pas du ftp
j'ai tenté de faire le ftp_put sur mon ftp de chez wanadoo.
et des qu'il arrive labas, le fichier est déjà tronqué.
 
c'est bien la copie temporaire sur mon serveur qui pose problem.
un probleme de conf apache ? j'en sais rien ..


Message édité par korny le 01-09-2003 à 15:37:01
n°505102
korny
Posté le 02-09-2003 à 14:11:10  profilanswer
 

:bounce:

n°505131
RiderCrazy
Posté le 02-09-2003 à 14:23:57  profilanswer
 

beleg a écrit :

tas un probleme avec ton upload http. (entre ton pc et le serveur).
 
Quel est la taille de ton image car :
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
 
ca fait pas bcp ... meme pas un ko ?

T'as modifié ça ??

n°505154
korny
Posté le 02-09-2003 à 14:33:24  profilanswer
 

oui :)
et l'upload fonctionne
cependant, le fichier qui arrive sur le serveur est dead.
je parlais de l'image tronquée .. mais j'ai testé avec un fichier rar , par exemple, et là, pareil, le fichier qui arrive n'est plus lisible :(

n°505158
RiderCrazy
Posté le 02-09-2003 à 14:36:33  profilanswer
 

T'as une idée plus ou moins précise de la perte (en pourcentage ou en fixe par rapport à la taille d'origine) ?

n°505165
korny
Posté le 02-09-2003 à 14:38:37  profilanswer
 

je regarde ..

n°505177
korny
Posté le 02-09-2003 à 14:45:27  profilanswer
 

je viens de tester d'uploader 2 images : un gif et un jpg :
 
(résultat du jpg, si ca peut te servir :  
 
http://nascar-cup.no-ip.org/korny/gta.jpeg
 
 
, coté taille, peut etre une piste : le fichier uploadé fait 2x la taille du fichier d'origine !
le fichier faisait 54k environ .. et là, il en fait 110ko sur le serveur apres upload ..

n°505181
RiderCrazy
Posté le 02-09-2003 à 14:49:02  profilanswer
 

:ouch: là par contre j'y pompe plus rien...
le fichier de base fait donc un peu plus de 50ko et arrive sur le serveur deux fois plus gros... j'aurais pensé à l'inverse quand tu parlais "d'image tronquée" :pt1cable:  
Peut être une gestion foireuse de l'upload par le ftp...
Re-balance ton code avec les modifs apportées

n°505190
korny
Posté le 02-09-2003 à 14:51:25  profilanswer
 

RiderCrazy a écrit :

:ouch: là par contre j'y pompe plus rien...  
le fichier de base fait donc un peu plus de 50ko et arrive sur le serveur deux fois plus gros... j'aurais pensé à l'inverse quand tu parlais "d'image tronquée" :pt1cable:  
Peut être une gestion foireuse de l'upload par le ftp...
Re-balance ton code avec les modifs apportées


 
merde !!!
j'étais sur que tu allais m'apporté la solution, quand tu m'a parlé de taille :d .. chier !  
je met le code dans 1 min :)

n°505204
korny
Posté le 02-09-2003 à 14:57:55  profilanswer
 

le formulaire :  
 

Code :
  1. <html>
  2. <body marginwidth=4 marginheight=4 topmargin=4 leftmargin=4 bgcolor=white vlink="#0000ff" link="#0000ff">
  3. <form name="Attachments"  method=POST action="sendimage.php" enctype="multipart/form-data">
  4. <input type="hidden" name="MAX_FILE_SIZE" value="100000000000000">
  5. Send this file: <input name="userfile" type="file">
  6. <input type="submit" value="Send File">
  7. </form>
  8. </body>
  9. </html


 
 
 
 
 
et le php upload/ftp :
 
 

Code :
  1. <?php
  2.     $ftp_server='nascar-cup.no-ip.org';//serverip
  3.     $conn_id = ftp_connect($ftp_server);
  4.     $user="xxxx";
  5.     $passwd="xxxx";
  6.     $login_result = ftp_login($conn_id, $user, $passwd);
  7. // Test connection ftp
  8.    if ((!$conn_id) || (!$login_result)) {
  9.         echo "FTP connection has failed!";
  10.         echo "Attempted to connect to $ftp_server for user $ftp_user_name";
  11.         die;
  12.     } else {
  13.         echo "<br>Connected to $ftp_server, for user $user<br>";
  14.     }
  15. //ftp_chdir($conn_id, "images" );
  16. // répétion du fichier à ploader
  17. $files=$_FILES['userfile']['tmp_name'];
  18. $files2=$_FILES['userfile']['name'];
  19. $destination_file=$files2;
  20. echo "$files";
  21. echo $userfile_name;
  22. //upload
  23. $upload = ftp_put($conn_id,$destination_file, $files, FTP_BINARY);
  24. //$upload = ftp_put($conn_id,$destination_file, $files, ASCII);
  25. // test du bon déulement de l'upload
  26. if (!$upload) {
  27.         echo "FTP upload has failed!";
  28.     } else {
  29.         echo "Uploaded $user_file to $ftp_server as $destination_file";
  30.     }


Message édité par korny le 02-09-2003 à 14:58:14
n°505229
RiderCrazy
Posté le 02-09-2003 à 15:10:27  profilanswer
 

Essayes de voir ça:
http://dev.nexen.net/scripts/details.php?scripts=557
Et puis ça:
http://dev.nexen.net/scripts/details.php?scripts=622
 
Le premier utilise ftp_put mais avec une connection un peu plus complète sur le ftp que ton script. A voir si ça viendrait pas de la justement.
Le deuxième n'utilise pas ftp_put mais copy... C'est un peu le bordel dans ce script car le type ne l'a pas nettoyé et y'a toutes ses balises html mais on repère facilement. Solution alternative quoi...

n°505251
Sh@rdar
Ex-PhPéteur
Posté le 02-09-2003 à 15:19:37  profilanswer
 

faudrait peut être reprendre depuis le début
 
pour l'instant on oublie le ftp et on se concentre sur l'upload (qui est la cause de tout je pense)
 
ça donne quoi quand tu copie le fichier temporaire sur ton site (en php, histoire de le virer de /tmp ou \temp)
 
essayes un ptit, move_uploaded_file()
 
ajoute des infos pendant l'upload (taille du fichier, nom temporaire, nom final etc)
 
après ça ira mieux déjà


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°505256
korny
Posté le 02-09-2003 à 15:21:39  profilanswer
 

merci pour votre aide en tout cas !!!
 
 
bon, je me lance dans vos 2 idées :)
et comme je suis tres débutant en php, ca va prendre un peu de temps !
:hello:

n°505273
Sh@rdar
Ex-PhPéteur
Posté le 02-09-2003 à 15:28:20  profilanswer
 

ok alors fait déjà ça :
 
tu prend ton formulaire et tu changes action="...." par action="<?=_SERVER['PHP_SELF'] ?>" tu vires aussi le champ max_file_size pour le moment
 
en haut dans le fichier tu ajoutes :

Code :
  1. <?
  2. if ($_POST) {
  3.   print_r($_FILES);
  4.   print_r($_POST);
  5. }
  6. ?>


 
et tu colles ici ce que ça affiche en plus une fois le formulaire validé


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°505300
korny
Posté le 02-09-2003 à 15:38:30  profilanswer
 

Sh@rdar a écrit :

ok alors fait déjà ça :
 
tu prend ton formulaire et tu changes action="...." par action="<?=_SERVER['PHP_SELF'] ?>" tu vires aussi le champ max_file_size pour le moment
 
en haut dans le fichier tu ajoutes :

Code :
  1. <?
  2. if ($_POST) {
  3.   print_r($_FILES);
  4.   print_r($_POST);
  5. }
  6. ?>


 
et tu colles ici ce que ça affiche en plus une fois le formulaire validé


 
bon, pour l'instant avec ca dans mon formulaire,  

Code :
  1. <form name="Attachments"  method=POST action="<?=_SERVER['PHP_SELF']?>" enctype="multipart/form-data">


 
 
j'ai ca :  

Code :
  1. Parse error: parse error, unexpected '[', expecting ',' or ';' in /var/www/html/korny2/index.php on line 10


 
une erreur dans mes '[' ',' je suppose, bref, je fais ca et je colle le resultat ..
 
mais je suppose que si je met "php_self", on ne refere plus à mon fichier sendimage.php .. donc tout le contenu de mon ancien sendimage, je dois le coller dans le meme script ou y'a le formulaire ?

n°505312
Sh@rdar
Ex-PhPéteur
Posté le 02-09-2003 à 15:49:47  profilanswer
 

fait comme je t'ai dit mais ajoute un $ avant _SERVER (faute de frappe)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] ftp_put et php, mission impossible ?

 

Sujets relatifs
Interet de JAVA pour le web comparé au PHP ou a l'ASP[PHP] Effectuer une requête sur une page distante. (résolu)
Herbergeur Php[PHP] Comment faites vous pour savoir quel champ n'est pas renseigné ?
[PHP/MySQL] Probleme de guillemets : A L'AIDE !![PHP] savoir si un champs est vide ou pas...
Topic sur les livres PHP / MYSQL + opinions[PHP]Fermer une fenêtre :$
[PHP] Je cherche 2 scripts ou bien 2 aides (Gestion fichiers/images)[PHP] ereg...tout simple...
Plus de sujets relatifs à : [PHP] ftp_put et php, mission impossible ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR