ftp_put et php, mission impossible ? [PHP] - PHP - Programmation
Marsh Posté le 26-08-2003 à 17:55:06
code ?
t'as un formulaire d'upload ?
Marsh Posté le 26-08-2003 à 18:04:40
j'ai un formulaire, puis le code apres pour uploader
mon formulaire :
Code :
|
le sendimage.php :
Code :
|
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'];
Marsh Posté le 26-08-2003 à 18:06:44
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
Marsh Posté le 26-08-2003 à 18:13:25
ton serveur FTP c'est apache ?
essaie en faisant pointer le fichier de destination dans /tmp/
Marsh Posté le 26-08-2003 à 18:33:30
au fait .. il t'affiche quoi $files ???
Marsh Posté le 26-08-2003 à 18:36:46
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
Marsh Posté le 26-08-2003 à 18:39:27
korny a écrit : |
ben c'est p'tet ca le problème
s'il na pas de source ....
Marsh Posté le 26-08-2003 à 19:43:01
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à .. !
Marsh Posté le 26-08-2003 à 19:59:59
......remplaces
Code :
|
par
Code :
|
Marsh Posté le 26-08-2003 à 20:13:57
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 ...
Marsh Posté le 26-08-2003 à 20:36:59
j'ai testé ton script chez moi en local ... avec le nom temporaire ca fonctionne tres bien ... ct ca la merde
edit : ah oui, $_FILES['userfile']['tmp_name'] est le nom temporaire du fichier
Marsh Posté le 26-08-2003 à 21:27:05
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 ?
Marsh Posté le 27-08-2003 à 09:22:45
t'es sur de pas avoir fait d'ereur ? (parce que c'est quand meme etonnant que ca marche chez moi et pas chez toi )
ou alors pb de config ...
Marsh Posté le 27-08-2003 à 09:43:25
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 ?
Marsh Posté le 27-08-2003 à 14:54:22
korny a écrit : j'en suis sur, oui |
biensur .. le nom temporaire
Marsh Posté le 27-08-2003 à 14:57:33
bon ... je c pas d'ou ca bien alors
j'ai vraiment pas de chance
Marsh Posté le 28-08-2003 à 15:42:26
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 ?
Marsh Posté le 28-08-2003 à 16:43:32
... ..
-> 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 ?
Marsh Posté le 28-08-2003 à 17:18:29
Citation : |
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 ?
Marsh Posté le 01-09-2003 à 14:56:02
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 !!
Marsh Posté le 01-09-2003 à 15:36:20
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 ..
Marsh Posté le 02-09-2003 à 14:23:57
beleg a écrit : tas un probleme avec ton upload http. (entre ton pc et le serveur). |
T'as modifié ça ??
Marsh Posté le 02-09-2003 à 14:33:24
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
Marsh Posté le 02-09-2003 à 14:36:33
T'as une idée plus ou moins précise de la perte (en pourcentage ou en fixe par rapport à la taille d'origine) ?
Marsh Posté le 02-09-2003 à 14:45:27
je viens de tester d'uploader 2 images : un gif et un jpg :
(résultat du jpg, si ca peut te servir :
, 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 ..
Marsh Posté le 02-09-2003 à 14:49:02
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"
Peut être une gestion foireuse de l'upload par le ftp...
Re-balance ton code avec les modifs apportées
Marsh Posté le 02-09-2003 à 14:51:25
RiderCrazy a écrit : là par contre j'y pompe plus rien... |
merde !!!
j'étais sur que tu allais m'apporté la solution, quand tu m'a parlé de taille .. chier !
je met le code dans 1 min
Marsh Posté le 02-09-2003 à 14:57:55
le formulaire :
Code :
|
et le php upload/ftp :
Code :
|
Marsh Posté le 02-09-2003 à 15:10:27
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...
Marsh Posté le 02-09-2003 à 15:19:37
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à
Marsh Posté le 02-09-2003 à 15:21:39
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 !
Marsh Posté le 02-09-2003 à 15:28:20
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 :
|
et tu colles ici ce que ça affiche en plus une fois le formulaire validé
Marsh Posté le 02-09-2003 à 15:38:30
Sh@rdar a écrit : ok alors fait déjà ça :
|
bon, pour l'instant avec ca dans mon formulaire,
Code :
|
j'ai ca :
Code :
|
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 ?
Marsh Posté le 02-09-2003 à 15:49:47
fait comme je t'ai dit mais ajoute un $ avant _SERVER (faute de frappe)
Marsh Posté le 26-08-2003 à 17:32:35
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 ? ?