(0 == $this->maxSize);
}
/**
* 检查上传的文件MIME类型是否合法
* @param string $mime 数据
*/
private function checkMime($mime) {
return empty($this->config['mimes']) ? true : in_array(strtolower($mime), $this->mimes);
}
/**
* 检查上传的文件后缀是否合法
* @param string $ext 后缀
*/
private function checkExt($ext) {
return empty($this->config['exts']) ? true : in_array(strtolower($ext), $this->exts);
}
/**
* 根据上传文件命名规则取得保存文件名
* @param string $file 文件信息
*/
private function getSaveName($file) {
$rule = $this->saveName;
if (empty($rule)) { //保持文件名不变
/* 解决pathinfo中文文件名BUG */
$filename = substr(pathinfo("_{$file['name']}", PATHINFO_FILENAME), 1);
$savename = $filename;
} else {
$savename = $this->getName($rule, $file['name']);
if(empty($savename)){
$this->error = '文件命名规则错误!';
return false;
}
}
/* 文件保存后缀,支持强制更改文件后缀 */
$ext = empty($this->config['saveExt']) ? $file['ext'] : $this->saveExt;
return $savename . '.' . $ext;
}
/**
* 获取子目录的名称
* @param array $file 上传的文件信息
*/
private function getSubPath($filename) {
$subpath = '';
$rule = $this->subName;
if ($this->autoSub && !empty($rule)) {
$subpath = $this->getName($rule, $filename) . '/';
if(!empty($subpath) && !$this->uploader->mkdir($this->savePath . $subpath)){
$this->error = $this->uploader->getError();
return false;
}
}
return $subpath;
}
/**
* 根据指定的规则获取文件或目录名称
* @param array $rule 规则
* @param string $filename 原文件名
* @return string 文件或目录名称
*/
private function getName($rule, $filename){
$name = '';
if(is_array($rule)){ //数组规则
$func = $rule[0];
$param = (array)$rule[1];
foreach ($param as &$value) {
$value = str_replace('__FILE__', $filename, $value);
}
$name = call_user_func_array($func, $param);
} elseif (is_string($rule)){ //字符串规则
if(function_exists($rule)){
$name = call_user_func($rule);
} else {
$name = $rule;
}
}
return $name;
}
}
相关推荐:
php实现生成混合验证码与图像验证码并测试(代码)
tp5实现批量上传图片的方法代码
以上就是Thinkphp上传类实现上传图片的代码的详细内容,更多请关注php中文网其它相关文章!
网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。
关键词:Thinkphp上传类完成上传图片的代码