springmvc多文件上传|Springmvc的几种多附件上传方式

springmvc多文件上传|Springmvc的几种多附件上传方式的第1张示图

A. 如何使用springmvc实现文件上传

在现在web应用的开发,springMvc使用频率是比较广泛的,现在给大家总结一下springMvc的上传附件的应用,希望对大家有帮助,废话不多说,看效果

准备jar包

4.准备上传代码@Controller//spring使用注解管理bean@RequestMapping("/upload")//向外暴露资源路径,访问到该类public class UploadController {/*** 上传功能* @return* @throws IOException*/@RequestMapping("/uploadFile")//向外暴露资源路径,访问到该方法public String uploadFile(MultipartFile imgFile,HttpServletRequest req) throws IOException{if(imgFile != null ){//获取文件输入流InputStream inputStream = imgFile.getInputStream();//随机产生文件名,原因是:避免上传的附件覆盖之前的附件String randName = UUID.randomUUID().toString();//随机文件名//获取文件原名String originalFilename = imgFile.getOriginalFilename();//获取文件后缀名(如:jpgpng…)String extension = FilenameUtils.getExtension(originalFilename);//新名字String newName = randName+"."+extension;//获取servletContextServletContext servletContext = req.getSession().getServletContext();//获取根路径String rootPath = servletContext.getRealPath("/");File file = new File(rootPath,"upload");//判断文件是否存在,若不存在,则创建它if(!file.exists()){file.mkdirs();}//获取最终输出的位置FileOutputStream fileOutputStream = new FileOutputStream(new File(file,newName));//上传附件IOUtils.(inputStream, fileOutputStream);}return null;}}

B. SpringMVC表单提交时,多文件上传和单个文件上传有些什么区别

基于Spring3 MVC实现基于form表单文件上传一:杂项准备环境搭建参考这里-http://blog.csdn.net/jia20003/article/details/8471169二:前台页面根据RFC1867,只要在提交表单中声明提交方法为POST,enctype属性声明为multipart/form-data, action声明到要提交的url即可。具体如下:三:spring配置使用spring3的MultipartHttpReqest来接受来自浏览器的发送的文件内容。需要配Multipart解析器在express-servlet.xml中。内容如下:同时还需要在maven的pom.xml文件添加apachefileupload与common-io两个包。四:Controller中方法实现[java] view plain@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public ModelAndView getUploadFile(HttpServletRequest request, HttpServletResponse response) { System.out.println("fucking spring3 MVC upload file with Multipart form"); String myappPath = request.getSession().getServletContext().getRealPath("/"); try { if (request instanceof MultipartHttpServletRequest) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; System.out.println("fucking spring3 MVC upload file with Multipart form"); // String myappPath = multipartRequest.getServletContext().getRealPath("/"); // does not work, oh my god!! MultipartFile file = multipartRequest.getFiles("userfile1").get(0); long size = file.getSize(); byte[] data = new byte[(int) size]; InputStream input = file.getInputStream(); input.read(data); // create file, if no app context path, will throws access denied. // seems like you could not create any file at tomcat/bin directory!!! File outFile = new File(myappPath + File.separator + file.getOriginalFilename()); if(!outFile.exists()) { outFile.createNewFile(); System.out.println("full path = " + outFile.getAbsolutePath()); } else { System.out.println("full path = " + outFile.getAbsolutePath()); } FileOutputStream outStream = new FileOutputStream(outFile); outStream.write(data); outStream.close(); input.close(); } } catch (Exception e) { e.printStackTrace(); } return new ModelAndView("welcome"); }

C. SpringMVC表单提交时,多文件上传和单个文件上传有些什么区别

上传这样的功能本来就应该独立出来,为以后能够更好的扩展和组件重用做准备。至于你的这个问题也很容易处理,问题的关键不在于后台处理的程序如何安排,而在于页面的表现形式,因为程序本身既然独立出来了,你的ACTION也是独立出来的,那么就把页面里的上传功能独立出来。举例来说:在你的表单里添加一个上传按钮,点击后弹出一个漂浮的div图层,然后在这个图层里可以放置单个的文件浏览按钮,或者动态的增加多个需要上传的浏览按钮,都是很灵活的,然后把这个图层使用单独的form标签包围起来就可以了。类似的功能像很多论坛程序都在使用,比较成熟的js组件也可以实现,比如ExtJs、jQuery等等,一般来说能够提供web editor功能的js组件对于上传都是类似的处理方式。

D. springmvc 多文件上传 MultipartFile 怎么获取前台传过来的参数

public @抄ResponseBody Result insertInfo(@RequestParam MultipartFile file,不要[]看看修改了spring版本,2.5.6 修改为3.2.2,可以使用

E. Springmvc的几种多附件上传方式

1.单文件上传1.1、页面文件上传需要将表单的提交方法设置为post,将enctype的值设置为”multipart/form-data”。<form action="${pageContext.request.contextPath}/test/upload.do" method="post" enctype="multipart/form-data"><input type="file" name="img"><br /><input type="submit" name="提交"></form>1.2 控制器@Controller@RequestMapping("/test")public class MyController {@RequestMapping(value = "/upload.do", method = RequestMethod.POST)// 这里的MultipartFile对象变量名跟表单中的file类型的input标签的name相同,//所以框架会自动用MultipartFile对象来接收上传过来的文件,//当然也可以使用@RequestParam("img")指定其对应的参数名称public String upload(MultipartFile img, HttpSession session)throws Exception {// 如果没有文件上传,MultipartFile也不会为null,可以通过调用getSize()方法获取文件的大小来判断是否有上传文件if (img.getSize() > 0) {// 得到项目在服务器的真实根路径,如:/home/tomcat/webapp/项目名/imagesString path = session.getServletContext().getRealPath("images");// 得到文件的原始名称,如:美女.pngString fileName = img.getOriginalFilename();// 通过文件的原始名称,可以对上传文件类型做限制,如:只能上传jpg和png的图片文件if (fileName.endsWith("jpg") || fileName.endsWith("png")) {File file = new File(path, fileName);img.transferTo(file);return "/success.jsp";}}return "/error.jsp";}}1.3springmvc.xml配置<!– 注意:CommonsMultipartResolver的id是固定不变的,一定是multipartResolver,不可修改 –><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!– 如果上传后出现文件名中文乱码可以使用该属性解决 –><property name="defaultEncoding" value="utf-8"/><!– 单位是字节,不设置默认不限制总的上传文件大小,这里设置总的上传文件大小不超过1M(1*1024*1024) –><property name="maxUploadSize" value="1048576"/><!– 跟maxUploadSize差不多,不过maxUploadSizePerFile是限制每个上传文件的大小,而maxUploadSize是限制总的上传文件大小 –><property name="maxUploadSizePerFile" value="1048576"/></bean>2.多文件上传2.1页面<form action="${pageContext.request.contextPath}/test/upload.do" method="post" enctype="multipart/form-data">file 1 : <input type="file" name="imgs"><br />file 2 : <input type="file" name="imgs"><br />file 3 : <input type="file" name="imgs"><br /><input type="submit" name="提交"></form>2.2控制器@Controller@RequestMapping("/test")public class MyController {@RequestMapping(value = "/upload.do", method = RequestMethod.POST)// 这里的MultipartFile[] imgs表示前端页面上传过来的多个文件,imgs对应页面中多个file类型的input标签的name,// 但框架只会将一个文件封装进一个MultipartFile对象,// 并不会将多个文件封装进一个MultipartFile[]数组,直接使用会报[Lorg.springframework.web.multipart.MultipartFile;.<init>()错误,// 所以需要用@RequestParam校正参数(参数名与MultipartFile对象名一致),当然也可以这么写:@RequestParam("imgs") MultipartFile[] files。public String upload(@RequestParam MultipartFile[] imgs, HttpSession session)throws Exception {for (MultipartFile img : imgs) {if (img.getSize() > 0) {String path = session.getServletContext().getRealPath("images");String fileName = img.getOriginalFilename();if (fileName.endsWith("jpg") || fileName.endsWith("png")) {File file = new File(path, fileName);img.transferTo(file);}}}return "/success.jsp";}}2.3springmvc.xml配置<!– 注意:CommonsMultipartResolver的id是固定不变的,一定是multipartResolver,不可修改 –><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!– 如果上传后出现文件名中文乱码可以使用该属性解决 –><property name="defaultEncoding" value="utf-8"/><!– 单位是字节,不设置默认不限制总的上传文件大小,这里设置总的上传文件大小不超过1M(1*1024*1024) –><property name="maxUploadSize" value="1048576"/><!– 跟maxUploadSize差不多,不过maxUploadSizePerFile是限制每个上传文件的大小,而maxUploadSize是限制总的上传文件大小 –><property name="maxUploadSizePerFile" value="1048576"/></bean>扩展:/** 通过流的方式上传文件* @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象*//** 采用file.Transto 来保存上传的文件*//**采用spring提供的上传文件的方法*/

F. java springmvc 大文件分片上传处理

*/@ApiModel("大文件分片入参实体")public class MultipartFileParam { @ApiModelProperty("文件传输任务ID") private String taskId;@ApiModelProperty("当前为第几分片") private int chunk;@ApiModelProperty("每个分块版的大小") private long size;@ApiModelProperty("分片总数") private int chunkTotal;@ApiModelProperty("主体权类型–这个字段是我项目中的其他业务逻辑可以忽略") private int objectType;@ApiModelProperty("分块文件传输对象") private MultipartFile file;

G. SpringMVC 前端大文件上传如何实现

你是要问前端的代码,还是要问后端的配置和代码实现?还有多大的文件?还有你用的spring的版本也是有影响的,所以,也需要你透露下spring的版本

H. springmvc 多文件上传multipartfile 怎么获取前台传过来的参数

@RequestMapping("fileUpload") public String fileUpload(@RequestParam("file") MultipartFile file) { }

I. springmvc 多文件上传 MultipartFile 怎么获取前台

public @ResponseBody Result insertInfo(@RequestParam MultipartFile file, 不要[]看看 修改了spring版本,256 修改为322,可以使用springmvc 多文件上传 MultipartFile 怎么获取前台

J. springmvc 多文件上传 jsp怎么写

用js,写个方法调用多次上传即可,我有自己写的jsp多上传页面

未经允许不得转载:山九号 » springmvc多文件上传|Springmvc的几种多附件上传方式

赞 (0)