Bonjour,
Je dois actuellement réaliser un script d'upload de fichier. Or le soucis c'est que le formulaire d'upload est sur un site A et qu'on veut stocker les fichiers sur un site B. (Quand on peut faire compliquer...)
J'ai d'abord essayer avec un move_uploaded_file. Mais j'ai l'impression que ça ne fonctionne que pour l'upload d'un fichier sur un même site. En gros, le formulaire est sur le site A et je doit stocker le fichier sur mon site A.
Du coup j'ai voulu tenté avec un ftp_put. Dans le cas ou je fait la manip avec un fichier déjà présent sur le ftp du site A et que j'appel mon ftp_put pour le transferer vers le ftp du site B, pas de problème.
Par contre, quand je récupère mon fichier via un formulaire d'upload sur le site A, pas moyen de le transférer sur le site B.
J'ai l'impression que je n'arrive pas a récupérer le fichier temporaire du formulaire d'upload.
Je récupère bien les données de mon fichier via le formulaire d'upload :
Array ( [img1] => Array ( [name] => carte-fidelite.jpg [type] => image/jpeg [tmp_name] => /tmp/phpntWh73 [error] => 0 [size] => 393896 ) ) 1
Mais ensuite :
Warning: ftp_put(/tmp/phpntWh73
) [function.ftp-put]: failed to open stream: No such file or directory in /var/www/vhosts/monsite_A.com/httpdocs/test.php on line 30
Il y a eu un problème lors du chargement du fichier new.jpg
Voici le code du bestiau :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <form name="form1" id="form1" action="#" method="POST" enctype="multipart/form-data">
<input type="file" name="img1" >
<input type="submit" name="sub1" id="sub1" value="OK">
</form>
<?PHP
if( (isset($_POST['sub1'])) && ($_POST['sub1'] == 'OK') )
{
echo 'submit' . '<br />';
$ftp_root = '/httpdocs/';
$site_root = '/var/www/vhosts/monsite_B.fr/httpdocs/';
$IP="ip_correct";
$ftpLogin="login_correct";
$ftpPwd="mot de passe_correct";
$conn_id = ftp_connect($IP);
$remote_file = 'new.jpg';
$login_result = ftp_login($conn_id, $ftpLogin, $ftpPwd);
if( !$login_result )
{
echo "Connexion au FTP impossible !";
}
else
{
echo 'Connexion ok' . '<br />';
echo print_r($_FILES);
if( isset($_FILES['img1']['tmp_name']) )
{
echo 'isset img1' . '<br />';
$tmp_file = $_FILES['img1']['tmp_name'] . '<br />';;
if (ftp_put($conn_id, $ftp_root.$remote_file, $tmp_file, FTP_ASCII))
{
exit('Le fichier $file a té chargé avec succès');
}
else
{
exit('Il y a eu un problème lors du chargement du fichier '. $remote_file);
}
}
}
}
?> |
Si vous avez une suggestion, je suis preneur.
Et si c'est faisable avec un move_uploaded_file pareil!
Merci
Partager