代码语言:javascript复制
//原代码在ThinkPHPLibraryThinkUploadDriverFtp.class.php
//大概在94行左右
/**
* 保存指定文件
* @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 && is_file($filename)) {
// $this->error = '存在同名文件' . $file['savename'];
// return false;
// }
/* 移动文件 */
if (!ftp_put($this->link, $filename, $file['tmp_name'], FTP_BINARY)) {
$this->error = '文件上传保存错误!';
return false;
}
return true;
}
//源代码当中屏蔽了同名覆盖的判断
//需要改成
//构造函数当中rootPath设置有误
$this->rootPath = ftp_pwd($this->link);
/**
* 保存指定文件
* @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;
}
//使用配置config
Array
(
[maxSize] => 734003200
[savePath] =>
[saveName] => test
[exts] => Array
(
[0] => jpeg
[1] => bmp
[2] => zip
[3] => jpg
)
[subName] => 2016/test
[rootPath] =>
)