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

php中文网
发布: 2016-06-23 13:44:57
原创
1389人浏览过

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();
}


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

使用新浪微博账号登录ecshop插件
使用新浪微博账号登录ecshop插件

新浪微博登录ecshop这类的功能就显得很有必要了把login整个文件夹传到服务器上ecshop安装所在的目录,如果路径不对可以会导致应用失败。 需要修改的文件:config.php callback.php可以修改第27行的邮箱域名为你的网站域名。 别的不用改,否则会导致无法使用。

使用新浪微博账号登录ecshop插件 0
查看详情 使用新浪微博账号登录ecshop插件

回复讨论(解决方案)

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

http://doc.thinkphp.cn/manual

多文件分路径?可能要自己改写Upload类吧

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

$co['saveRule'] = date('ymdHis',time()).'_'.mt_rand();使用这个设置名字后,只能上传一个,多个上传,会提示文件已存在。

saveRule 上传文件的保存规则, 必须是一个无需任何参数的函数名
显然你的 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); 不符合这个要求
你可以定义一个函数,比如

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
登录后复制

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

saveRule 上传文件的保存规则, 必须是一个无需任何参数的函数名
显然你的 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); 不符合这个要求
你可以定义一个函数,比如

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
登录后复制

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

$co['saveRule'] = ‘my_filename';这样些他就是直接把这个当成字符串,变成名字了,$co['saveRule'] = my_filename();我改成这样又提示未定义这个方法。
还有在问下,如果没有文件上传,他提示必须上传文件,怎么改成不是必须上传文件。

saveRule 上传文件的保存规则, 必须是一个无需任何参数的函数名
显然你的 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); 不符合这个要求
你可以定义一个函数,比如

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
登录后复制

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

这个框架是新手,第一次用,

saveRule 上传文件的保存规则, 必须是一个无需任何参数的函数名
显然你的 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); 不符合这个要求
你可以定义一个函数,比如

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
登录后复制

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

不是让你定义一个函数了吗?
是看不懂,还是没看见?

不是让你定义一个函数了吗?
是看不懂,还是没看见?

不还意思,我函数放错地方了,有时候提交的时候不上传文件,但是他会提示未上传文件,怎么设置忽略。

那就不知道了,我没用过

已经做出来了,用的是saveRule,用savename或者saveName都不行

你们继续讨论,明天结贴

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号