主页 > 后端 > thinkphp教程 >
来源:自学PHP网 时间:2014-11-28 23:17 作者: 阅读:次
[导读] 上传类使用ORG类库包中的Net.UpdateFile类,最新版本的上传类包含的功能如下,有些功能需要结合ThinkPHP系统其他类库.1.基本上传功能2.支持批量上传3.支持生成图片缩略图4. 自定义参数上传...
ThinkPHP文件上传类的分享上传类使用ORG类库包中的Net.UpdateFile类,最新版本的上传类包含的功能如下,有些功能需要结合ThinkPHP系统其他类库. 1.基本上传功能 2.支持批量上传 3.支持生成图片缩略图 4. 自定义参数上传 5.上传检测(包括大小、后缀和类型) 6.支持上传类型、附件大小、上传路径定义 7.支持哈希或者日期子目录保存上传文件 8.上传图片的安全性检测 9.支持上传文件命名规则 10. 支持对上传文件的Hash验证 在ThinkPHP中使用上传功能无需进行特别处理,例如,下面是一个带有附件上传的表单提交,代码如下:
注意表单的Form标签中一定要添加 enctype=”multipart/form-data” 文件才能上传,因为表单提交到当前模块的upload操作方法,所以我们在模块类里面添加下面的upload方法即可,代码如下:
首先是实例化上传类,代码如下: import(“ORG.Net.UploadFile”); $upload = new UploadFile(); // 实例化上传类 实例化上传类之后,就可以设置一些上传的属性(参数),支持的属性有: 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:子目录保存的层次,默认为一层 以上属性都可以直接设置,例如如下代码:
其中生成缩略图功能需要Image类的支持. 设置好上传的参数后,就可以调用 UploadFile类的upload方法进行附件上传,如果失败,返回false,并且用getErrorMsg方法获取错误提示信息,如果上传成功,可以通过调用getUploadFileInfo方法获取成功上传的附件信息列表,因此getUploadFileInfo方法的返回值是一个数组,其中 的每个元素就是上传的附件信息,每个附件信息又是一个记录了下面信息的数组,包括: key:附件上传的表单名称 savepath:上传文件的保存路径 name:上传文件的原始名称 savename:上传文件的保存名称 size:上传文件的大小 type:上传文件的MIME类型 extension:上传文件的后缀类型 hash:上传文件的哈希验证字符串 文件上传成功后,就可以通过这些附件信息来进行其他的数据存取操作,例如保存到当前数据表或者单独的附件数据表都可以. 如果需要使用多个文件上传,只需要修改表单,把XML/HTML代码,如下: <input type=“file” name=“photo”> 改为,XML/HTML代码,如下:
两种方式的多附件上传系统的文件上传类都可以自动识别. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com