angularjsFileUpload+Springmvc上传文件
来源:互联网 发布:汤姆叔叔 javascript 编辑:程序博客网 时间:2024/05/20 22:28
1.html页面以及js来自于angularjsFileUpload的demo
multiple属性为允许多个文件同时上传
参数设置
url为文件上传路径
formData属性对应的是参数数组,这里以传递id为例
2.springmvc后台
package com.baosight.webapp.web;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartResolver;import com.baosight.webapp.bean.App;@Controller@RequestMapping("/ngFileUpload")public class NgFileUpload {@RequestMapping(value="/test", method=RequestMethod.POST)@ResponseBodypublic Map<String, Object> ngUpload(HttpServletRequest request,HttpServletResponse res){System.out.println("in");//接收参数int id= Integer.parseInt(request.getParameter("id"));System.out.println("id=="+id);Map<String, Object> resMap = new HashMap<String, Object>();resMap.put("result", "error");//解析器解析request的上下文CommonsMultipartResolver multipartResolver =new CommonsMultipartResolver(request.getSession().getServletContext()); //先判断request中是否包涵multipart类型的数据,if(multipartResolver.isMultipart(request)){ //再将request中的数据转化成multipart类型的数据MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;Iterator iter = multiRequest.getFileNames();while(iter.hasNext()){//这里的name为fileItem的alias属性值,相当于form表单中nameString name=(String)iter.next();System.out.println("name:"+name);//根据name值拿取文件MultipartFile file = multiRequest.getFile(name);if(file != null){String fileName = file.getOriginalFilename();String path = "D:/test/" + fileName;File localFile = new File(path);if(!localFile.getParentFile().exists()) { //如果目标文件所在的目录不存在,则创建父目录 localFile.getParentFile().mkdirs(); System.out.println("parent:"+localFile.getParentFile().getPath()); }//写文件到本地try {file.transferTo(localFile);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return resMap;}}} }else { return resMap;} resMap.put("result", "success"); return resMap; }}
3.备注:
获取参数 request.getParameter("id")
这里的拿到的name为fileItem的alias属性值,相当于form表单中name String name=(String)iter.next();
如果想通过file的name属性值获取文件,对文件进行分类接受,可以通过controller中item的alias属性值。
uploader.uploadAll()是提交所有文件的方法,但是实质上来说该方法是将每个文件提交一次。虽然只触发了一次uploadAll方法,但是有多少个文件就会进多少次后台。实质上是文件进行单个传输。
3 0
- angularjsFileUpload+Springmvc上传文件
- angularjsFileUpload+Springmvc上传文件
- springMVC(11) springMVC文件上传
- SpringMVC-----8、SpringMVC上传文件
- springmvc文件上传总结
- SpringMVC multipart文件上传
- SpringMVC中的文件上传
- springmvc的文件上传
- springMVC上传文件
- springMVC 文件上传
- SpringMVC - 文件上传篇
- springMVC文件上传
- springMVC文件上传
- springMVC文件上传
- SpringMVC 上传文件
- SpringMVC文件上传
- springMVC上传文件
- springMVC上传文件例子
- [SpringBoot]SpringBoot项目的前期准备 By Eclipse
- Atom build
- Java.Web学习笔记 Listener
- 如何精通MFC-----CObject类的理解
- WebStorm 最新 2016 AngularJs 2 代码提示插件安装
- angularjsFileUpload+Springmvc上传文件
- 计算中英文混合字符串长度
- 从0开始写MyScrollView
- android 自定义 loader实现
- Android studio 查看 取消 所有断点
- 对手机丢失后可能产生的危害的思考
- webdriver实现2个或两个以上窗口间切换的方法
- java中正则模糊匹配字符串
- java编程查找质数代码优化