欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

修复ThinkPHP3.2.3官方FTP上传同名文件覆盖问题

程序员文章站 2022-05-17 08:41:38
...
在官网提供的FTP上传类文件存在错误!
设定rootpath/**
* 检测上传根目录
* @param string $rootpath 根目录
* @return boolean true-检测通过,false-检测失败
*/
public function checkRootPath($rootpath){
/* 设置根目录 */
$this->rootPath = ftp_pwd($this->link);

if(!@ftp_chdir($this->link, $this->rootPath)){
$this->error = '上传根目录不存在!';
return false;
}
return true;
}
重写save方法 /**
* 保存指定文件
* @param array $file 保存的文件信息
* @param boolean $replace 同名文件是否覆盖
* @return boolean 保存状态,true-成功,false-失败
*/
public function save($file, $replace=true) {
$filename = $this->rootPath . $file['savepath'] . $file['savename'];
/* 不覆盖同名文件 */
if (!$replace) {
ftp_chdir($this->link, $this->rootPath . $file['savepath']);
$ftpFileList = ftp_nlist($this->link, ".");
if(in_array($file['savename'], $ftpFileList)) {
$this->error = '存在同名文件' . $file['savename'];
return false;
}
}
/* 移动文件 */
if (!ftp_put($this->link, $filename, $file['tmp_name'], FTP_BINARY)) {
$this->error = '文件上传保存错误!';
return false;
}
return true;
}

AD:真正免费,域名+虚机+企业邮箱=0元