Heim >Backend-Entwicklung >PHP-Tutorial >ThinkPHP3.1多文件上传路径跟命名

ThinkPHP3.1多文件上传路径跟命名

WBOY
WBOYOriginal
2016-06-13 12:00:02818Durchsuche

ThinkPHP3.1多文件上传路径和命名
import('ORG.Net.UploadFile');

$co = array();
$co['maxSize'] = 3145728;
$co['saveRule'] = date('ymdHis',time()).'_'.mt_rand();
$co['allowExts'] = array('jpg', 'gif', 'png', 'jpeg');
$co['savePath'] = './Public/image/home/news/';
$upload = new UploadFile($co);// 实例化上传类
if(!$upload->upload()) {// 上传错误提示错误信息
$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info =  $upload->getUploadFileInfo();
}


这样上传多个文件时,错误说文件已存在,命名重复了。还有上传了两个文件如何,让他们分开存放不同的路径。
------解决方案--------------------

实例化上传类之后,就可以设置一些上传的属性(参数),支持的属性有:<br /><br />maxSize 文件上传的最大文件大小(以字节为单位)默认为-1 不限大小<br />savePath 文件保存路径,如果留空会取UPLOAD_PATH常量定义的路径<br />saveRule 上传文件的保存规则,必须是一个无需任何参数的函数名,例如可以是 time、 uniqid com_create_guid 等,但必须能保证生成的文件名是唯一的,默认是uniqid<br />hashType 上传文件的哈希验证方法,默认是md5_file<br />autoCheck 是否自动检测附件,默认为自动检测<br />uploadReplace 存在同名文件是否是覆盖<br />allowExts  允许上传的文件后缀(留空为不限制),使用数组设置,默认为空数组<br />allowTypes 允许上传的文件类型(留空为不限制),使用数组设置,默认为空数组<br />thumb 是否需要对图片文件进行缩略图处理,默认为false<br />thumbMaxWidth 缩略图的最大宽度,多个使用逗号分隔<br />thumbMaxHeight 缩略图的最大高度,多个使用逗号分隔<br />thumbPrefix 缩略图的文件前缀,默认为thumb_<br />thumbSuffix 缩略图的文件后缀,默认为空<br />thumbPath 缩略图的保存路径,留空的话取文件上传目录本身<br />thumbFile 指定缩略图的文件名<br />thumbRemoveOrigin 生成缩略图后是否删除原图<br />autoSub 是否使用子目录保存上传文件<br />subType 子目录创建方式,默认为hash,可以设置为hash或者date<br />dateFormat 子目录方式为date的时候指定日期格式<br />hashLevel 子目录保存的层次,默认为一层<br /><br />以上属性都可以直接设置<br />

------解决方案--------------------
http://doc.thinkphp.cn/manual

多文件分路径?可能要自己改写Upload类吧
------解决方案--------------------
saveRule 上传文件的保存规则,必须是一个无需任何参数的函数名
显然你的 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); 不符合这个要求
你可以定义一个函数,比如
function my_filename() {<br />  return date('ymdHis',time()).'_'.mt_rand();<br />}<br />

然后
$co['saveRule'] = ‘my_filename';

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn