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

在官网提供的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元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值