站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ThinkPHP开发指南-杂项-文件上传
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>[[ThinkPHP使用手册|返回上一页]]</span> <div style="clear:both;"></div> 上传类使用ORG类库包中的Net.UpdateFile类,最新版本的上传类包含的功能如下(有些功能需要结合[[ThinkPHP]]系统其他类库): #基本上传功能 #支持批量上传 #支持生成图片缩略图 #自定义参数上传 #上传检测(包括大小、后缀和类型) #支持上传类型、附件大小、上传路径定义 #支持哈希或者日期子目录保存上传文件 #上传图片的安全性检测 #支持上传文件命名规则 #支持对上传文件的Hash验证 在ThinkPHP中使用上传功能无需进行特别处理。例如,下面是一个带有附件上传的表单提交: '''PHP代码''' <pre> <form METHOD=POST action="/Manual/upload" enctype="multipart/form-data" > <input type="text" NAME="name" > <input type="text" NAME="email" > <input type="file" name="photo" > <input type="submit" value="保 存" > </form> </pre> 注意表单的Form标签中一定要添加 enctype="multipart/form-data" 文件才能上传。因为表单提交到当前模块的upload操作方法,所以我们在模块类里面添加下面的upload方法即可: '''PHP代码''' <pre> Public function upload(){ import("ORG.Net.UploadFile"); $upload = new UploadFile(); // 实例化上传类 $upload->maxSize = 3145728 ; // 设置附件上传大小 $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型 $upload->savePath = './Public/Uploads/'; // 设置附件上传目录 if(!$upload->upload()) { // 上传错误 提示错误信息 $this->error($upload->getErrorMsg()); }else{ // 上传成功 获取上传文件信息 $info = $upload->getUploadFileInfo(); } // 保存表单数据 包括附件数据 $User = M("User"); // 实例化User对象 $User->create(); // 创建数据对象 $User->photo = $info[0]["savename"]; // 保存上传的照片 根据需要自行组装 $User->add(); // 写入用户数据到数据库 $this->success("数据保存成功!"); } </pre> 首先是实例化上传类 '''PHP代码''' <pre> import("ORG.Net.UploadFile"); $upload = new UploadFile(); // 实例化上传类 </pre> 实例化上传类之后,就可以设置一些上传的属性(参数),支持的属性有: *maxSize: 文件上传的最大文件大小(以字节为单位)默认为-1 不限大小 *savePath:文件保存路径,如果留空会取UPLOAD_PATH常量定义的路径 *saveRule:上传文件的保存规则,必须是一个无需任何参数的函数名,例如可以是 time、 uniqid com_create_guid 等,但必须能保证生成的文件名是唯一的,默认是uniqid *hashType:上传文件的哈希验证方法,默认是md5_file *autoCheck:是否自动检测附件,默认为自动检测 *uploadReplace:存在同名文件是否是覆盖 *allowExts:允许上传的文件后缀(留空为不限制),使用数组设置,默认为空数组 *allowTypes:允许上传的文件类型(留空为不限制),使用数组设置,默认为空数组 *thumb:是否需要对图片文件进行缩略图处理,默认为false *thumbMaxWidth:缩略图的最大宽度,多个使用逗号分隔 *thumbMaxHeight:缩略图的最大高度,多个使用逗号分隔 *thumbPrefix:缩略图的文件前缀,默认为thumb_ *thumbSuffix:缩略图的文件后缀,默认为空 *thumbPath:缩略图的保存路径,留空的话取文件上传目录本身 *thumbFile:指定缩略图的文件名 *thumbRemoveOrigin:生成缩略图后是否删除原图 *autoSub:是否使用子目录保存上传文件 *subType:子目录创建方式,默认为hash,可以设置为hash或者date *dateFormat:子目录方式为date的时候指定日期格式 *hashLevel:子目录保存的层次,默认为一层 以上属性都可以直接设置. '''例如''':[[PHP]]代码 <pre> $upload->thumb = true $upload->thumbMaxWidth = "50,200" $upload->thumbMaxHeight = "50,200" </pre> 其中生成缩略图功能需要Image类的支持。设置好上传的参数后,就可以调用UploadFile类的upload方法进行附件上传,如果失败,返回false,并且用getErrorMsg方法获取错误提示信息;如果上传成功,可以通过调用getUploadFileInfo方法获取成功上传的附件信息列表。因此getUploadFileInfo方法的返回值是一个数组,其中的每个元素就是上传的附件信息。每个附件信息又是一个记录了下面信息的数组,包括: *key:附件上传的表单名称 *savepath:上传文件的保存路径 *name:上传文件的原始名称 *savename:上传文件的保存名称 *size:上传文件的大小 *type:上传文件的MIME类型 *extension:上传文件的后缀类型 *hash:上传文件的哈希验证字符串 文件上传成功后,就可以通过这些附件信息来进行其他的数据存取操作,例如保存到当前数据表或者单独的附件数据表都可以。如果需要使用多个文件上传,只需要修改表单,把[[XML]]/[[HTML]]代码 <pre> <input type="file" name="photo" > </pre> 改为 '''XML/HTML代码''' <pre> <input type="file" name="photo1" > <input type="file" name="photo2" > <input type="file" name="photo3" > </pre> 或者 '''PHP代码''' <pre> <input type="file" name="photo[]" > <input type="file" name="photo[]" > <input type="file" name="photo[]" > </pre> 两种方式的多附件上传系统的文件上传类都可以自动识别。 [[category:ThinkPHP]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)