thinkphp同时上传多个文件并统一命名
2016-10-16 16:58
716 查看
通过thinkphp的upload类可以方便的进行文件上传,上传单个文件或对命名没什么要求的多个文件时十分方便,然而在处理需要上传多个文件,且对上传后的文件名有格式要求的时候就显得力不从心了。
这时候就需要我们自己进行一些修改。
本方法的处理如下:
使用一个数组保存上传文件的基础信息$oldFN = $_FILES;
使用thinkphp的upload方法上传文件,上传后的文件名使用原始文件名(设置saveRule为空);
根据$oldFN数组中保存的基础信息,依次对上传的文件进行重新命名;
(示例代码展示上传3个文件,并将上传后的文件依次命名为1.*,2.*,3.*)
示例代码如下:
index.html
IndexAction.class.php
这时候就需要我们自己进行一些修改。
本方法的处理如下:
使用一个数组保存上传文件的基础信息$oldFN = $_FILES;
使用thinkphp的upload方法上传文件,上传后的文件名使用原始文件名(设置saveRule为空);
根据$oldFN数组中保存的基础信息,依次对上传的文件进行重新命名;
(示例代码展示上传3个文件,并将上传后的文件依次命名为1.*,2.*,3.*)
示例代码如下:
index.html
<body> <form enctype="multipart/form-data" method="post" action="__URL__/upFile"> <label>选择要上传的文件</label> <input type="file" name="uploadfile[]" /> <input type="file" name="uploadfile[]" /> <input type="file" name="uploadfile[]" /> <input type="submit" value="submit" /> </form>
IndexAction.class.php
public function upFile(){ $oldFN = $_FILES; import("ORG.Net.UploadFile"); $up = new UploadFile(); $up->savePath = './'; $up->saveRule = ''; $up->uploadReplace = true; if(!$up->upload()){ echo "error:".$up->getErrorMsg(); }else{ $info = $up->getUploadFileInfo(); $this->renameFile($oldFN['uploadfile']['name'], './'); } } public function renameFile($oldFN,$path){ for($i=0;$i<count($oldFN);$i++){ $extName = substr($oldFN[$i],strrpos($oldFN[$i],'.')); $newName = ($i+1).$extName; rename($path.$oldFN[$i],$newName); } }
相关文章推荐
- 如何在上传文件的时候,同时把这个文件自动命名
- Thinkphp5之上传文件命名重复
- Thinkphp关于文件上传下载去重命名的解决办法
- thinkphp5中上传文件自定义命名规则
- thinkphp多文件上传同时生成缩略图,保存到数据库
- 怎么在一个表单里面同时上传文件和文本信息??
- ASP.NET(C#)同时上传多个文件
- 多文件同时上传实现方法
- 使用FileUpload实现多个文件同时上传
- commons-fileupload-1.2同时上传文件和文字的servlet实例(原创)
- 让你同时上传 1000 个文件 (一)
- struts如何实现上传文件的重命名????
- 让你同时上传 1000 个文件 (一)
- 让你同时上传 1000 个文件 (二)
- asp.net中同时上传多个文件
- 研究了三天的文件上传(jspsmart实现)file和text表单同时提交的问题
- 文件上传中的错误----文件上传及其命名
- JSPSmart实现文件上传时file和text表单同时提交的问题
- jsp中用cos上传文件并重命名
- 关于在一个form表单里同时上传多个文件和文本信息的解决方案。。。