Solution à l'échec de php ftp_put : ouvrez d'abord "Upload/Driver/Ftp.class.php" ; puis utilisez la méthode "ftp_pasv($this->link,true);" enfin, il suffit de recharger le fichier sur le client.
Recommandé : "Tutoriel PHP"
Problème d'échec de téléchargement du pilote FTP du pilote FTP ftp_put
2 serveurs, un comme serveur ftp et un comme serveur web.
J'utilise la classe Upload de thinkphp3.2 et le pilote FTP de téléchargement, mais à chaque fois, il indique que l'enregistrement du fichier a échoué.
Je cherche la réponse. J'ai testé à la fois asynchrone et synchrone, mais aucun ne fonctionne. Les répertoires distants /tmp/ et ftp ont également 777 autorisations.
Thinkphp devrait être très mature. J'ai trouvé quelques réponses dans les documents officiels plus tard, y compris le mode explication
mode actif du serveur ftp, mode passif du serveur ftp, j'utilise ftp_pasv($this-> ;link,true); Passez en mode passif et le client peut télécharger des fichiers en douceur.
Voici la solution
Fonction sava Upload/Driver/Ftp.class.php
public function save($file, $replace=true) { $filename = $file['rootPath']. $file['savepath'] . $file['savename']; /* 不覆盖同名文件 */ // if (!$replace && is_file($filename)) { // $this->error = '存在同名文件' . $file['savename']; // return false; // } ftp_pasv($this->link,true); ftp_pwd($this->link); $filename=$file['savename']; if (!ftp_put($this->link, $filename, $file['tmp_name'],FTP_ASCII)) { $this->error = '文件上传FTP错误!'; return false; } return true; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!