美文网首页
PHP Upload FTP驱动 ftp_put 函数上传失

PHP Upload FTP驱动 ftp_put 函数上传失

作者: Godtoy | 来源:发表于2017-02-17 11:02 被阅读0次

    2台服务器,一台做ftp服务器,一台做web服务器。

    我使用的thinkphp3.2得Upload类,使用了上传FTP驱动,但是每次都说文件保存失败。

    我寻找答案,异步和同步都测试,都不行,远程端/tmp/ 和ftp目录也有777权限。

    Thinkphp应该很成熟,后面我在官方的文档找到了一些答案,其中有解释模式

    ftp服务器主动模式,ftp服务器被动模式,我使用 ftp_pasv($this->link,true); 切换到被动模式,客户端就可以顺利上传文件了。

    下面是解决方案

    Upload/Driver/Ftp.class.php sava函数

    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;
        }
    
    
    
    

    相关文章

      网友评论

          本文标题:PHP Upload FTP驱动 ftp_put 函数上传失

          本文链接:https://www.haomeiwen.com/subject/mbmkwttx.html