Je travaille à copier un fichier d'un dossier à un autre à l'aide des fonctions FTP PHP. P>
E.g p>
J'ai essayé d'utiliser ftp_fput mais je n'ai aucune chance avec elle. p>
5 Réponses :
Sauf si vous déplacez réellement des fichiers entre serveurs ou quelque part que PHP n'a pas accès, utilisez copie () (php)
à partir de la page manuelle sur ftp_put code> sur PHP. NET :
<?php
// bool ftp_copy ( resource $ftp_stream , string $initialpath, string $newpath, string $imagename )
function ftp_copy($conn_distant , $pathftp , $pathftpimg ,$img){
// on recupere l'image puis on la repose dans le nouveau folder
if(ftp_get($conn_distant, TEMPFOLDER.$img, $pathftp.'/'.$img ,FTP_BINARY)){
if(ftp_put($conn_distant, $pathftpimg.'/'.$img ,TEMPFOLDER.$img , FTP_BINARY)){
unlink(TEMPFOLDER.$img) ;
} else{
return false;
}
}else{
return false ;
}
return true ;
}
?>
Je reçois maintenant l'erreur suivante FTP_GET (tempfolderfile_1.jpg) [ fonction.ftp-get ]: Échec de l'ouverture du flux: autorisation refusée dans
Les informations d'identification de connexion sont-elles valides? Cela télécharge simplement le fichier, puis le télécharge ailleurs. Ce n'est peut-être pas la meilleure solution pour les gros fichiers.
Oui parce que toutes mes autres fonctionnalités fonctionnent bien. Son agissant comme il ne peut pas trouver le tempfolder
C'est parce que vous devez vous donner vous-même. Déclarez un tempoleur constant qui pointe vers un dossier Temp d'écriture.
Maintenant, je reçois une restriction open_basedir en vigueur. Fichier (/httpdocs/temp/file_1.jpg)
Peut-être un fait peu connu: la fonction Copy () en PHP peut être utilisée pour copier des fichiers sur un serveur FTP, bien que sans autant de contrôle que vous n'obtenez à l'aide des fonctions spécifiques à FTP.
En d'autres termes, Cela peut faire le travail: p>
J'ai essayé cette méthode, mais pour une raison quelconque, il ne fait que copier une partie du fichier, un peu plus de la moitié. Le fichier copié arrêtera de mi-mot d'environ 500 lignes (c'est un CSV de 800 lignes). Je n'ai pas été capable de comprendre pourquoi.
La fonction de copie ne fonctionnera pas. Vous devez utiliser FTP_GET () et FTP_PUT () () pour atteindre cette tâche p>
Vous devriez réellement exécuter un serveur FTP pour ce faire fonctionner et avoir des autorisations de lecture / écriture appropriées pour les deux nom d'utilisateur que vous enregistrez dans le serveur FTP avec et l'utilisateur utilise le script PHP. Comme le dit Rockerest, pour copier des fichiers sur la même machine, utilisez simplement la fonction
copie () code>. FTP est destiné aux transferts "externes" entre deux machines distinctes.
Ne pensez pas que c'est un processus d'une étape. Peut avoir besoin de faire un
ftp_get code> puis
ftp_put code>. FTP est-il votre seule option pour accéder au serveur distant?
Oui c'est comme ça que j'essaie de le faire maintenant, mais il ne peut pas trouver le TempFolder