SpringMVC+Huploadify 实现文件上传下载

实现上传下载的技术有很多,我目前做的这个项目视图层用的SpringMVC框架,需要结合该框架实现上传下载。

问了下公司前辈,前端框架推荐我使用Huploadify。

不多说,上代码。

js代码,函数调用:

①首先要下载引用js,这个不赘述。

②函数引用

 1 function uploadInit(domName,domPic){  
 2         $("#"+domName).Huploadify({  
 3             auto:true,  
 4             fileTypeExts:'*.*',  //前缀、后缀拦截(多个,隔开)
 5             multi:false,  //是否上传多个
 6             fileObjName:'fileid',  //参数名称(***重点***)
 7             fileSizeLimit:99999999999,  //文件大小限制(单位kb)
 8             showUploadedPercent:true,  //是否显示上传进度条
 9             buttonText:'上传图片',  //上传按钮显示文字
10             uploader:"${ctx}/advance/account/upload",  //控制器路径
11             onUploadSuccess:function(file,data){  
12                 alert("上传成功");
13                 var Data=JSON.parse(data);  
14                 if(Data.success==true){  
15                      $("#"+domPic).attr("src",Data.result);  
16                     param.uploadsuccess(Data.result);  
17                 }else{  
18                      jQuery.longhz.alert(Data.resultDes);  
19                 }  
20             },  
21             onUploadError:function(file,response){  
22                 jQuery.longhz.alert("上传失败!");  
23             }  
24         });  
25           
26 }  
27 
28 
29 //调用公共方法  
30 uploadInit("fileid","imgid");

③HTML

1 <div class="col-sm-4 controls">
2     <img src="" alt="" class="" id="imgid"/>预览图片   
3 <div id="fileid" name="fileid"></div><!--图片上传按钮--> 
4 </div> 

好了,完事了。。。

就是这么简单,补充两点:

1.Huploadify包中有个jquery.Huploadify.js文件,其中包含齐全的默认配置,可以再里面更改属性。

2.注意fileObjName:'fileid'这个参数,这个参数表示传递给控制器的参数名称,这个值必须在页面配置——jquery.Huploadify.js文件——控制器接受参数三者一致,否则会出现接收不到请求或参数错误的情况。

 

控制器代码:

 1 //上传图片
 2     @RequestMapping(value = "upload")
 3     public void upload(@RequestParam(value="fileid") MultipartFile file) {
 4         if(file == null) return;
 5         String fileName = file.getOriginalFilename();
 6         File saveFile = new File(Global.getConfig("uploadPath")+fileName);
 7         UploadUtils.copy(file, saveFile);
 8         
 9     }
10 
11 //以流的形式存储到本地即可
12 public class UploadUtils {
13     public static void copy(MultipartFile file, File saveFile){
14         OutputStream os = null;
15         InputStream is = null;
16         int i = 0;
17         byte[] buff = new byte[1024];
18         try {
19             os = new FileOutputStream(saveFile);
20             is = file.getInputStream();
21             while((i = is.read(buff)) != -1)
22                 os.write(buff, 0, i);
23             os.flush();
24         } catch (FileNotFoundException e) {
25             // TODO Auto-generated catch block
26             e.printStackTrace();
27         } catch (IOException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }finally{
31             try {
32                 is.close();
33                 os.close();
34             } catch (IOException e) {
35                 // TODO Auto-generated catch block
36                 e.printStackTrace();
37             }
38         }
39     }
40 }

 

配置文件:

1 <!-- 上传文件拦截,设置最大上传文件大小   10M=10*1024*1024(B)=10485760 bytes -->  
2     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
3         <property name="maxUploadSize" value="${web.maxUploadSize}" />  
4     </bean>

 

 

转载于:https://www.cnblogs.com/cxy2016/p/9106441.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用SpringMVC和Vue.js实现多图片上传的示例代码: 前端页面代码(使用Vue.js): ```html <template> <div> <input type="file" ref="fileInput" @change="handleFileUpload" multiple> <button @click="uploadFiles">上传文件</button> </div> </template> <script> export default { data() { return { files: [] } }, methods: { handleFileUpload() { this.files = this.$refs.fileInput.files; }, uploadFiles() { let formData = new FormData(); for (let i = 0; i < this.files.length; i++) { formData.append("files", this.files[i]); } axios.post("/upload", formData, { headers: { "Content-Type": "multipart/form-data" } }).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); } } } </script> ``` 后端代码(使用SpringMVC): ```java @PostMapping("/upload") @ResponseBody public List<String> upload(@RequestParam("files") MultipartFile[] files) throws IOException { List<String> fileNames = new ArrayList<>(); for (MultipartFile file : files) { if (!file.isEmpty()) { String fileName = file.getOriginalFilename(); String uuid = UUID.randomUUID().toString(); String saveFileName = uuid + "_" + fileName; file.transferTo(new File("/path/to/save/" + saveFileName)); fileNames.add(saveFileName); } } return fileNames; } ``` 这个示例代码使用了Vue.js来实现前端页面的交互,使用了axios库来发送文件上传请求。后端使用了SpringMVC的MultipartFile来处理文件上传请求。在处理每个文件时,可以根据需要对文件进行一些额外的处理,例如:获取文件大小、文件类型等。 希望这个示例代码可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值