标签:ons 读取数据 项目 htm 文件 类型 原理 ack 方便
文件上传相信大家都做过,差点儿全部的项目都有上传文件的功能,尤其是BS架构的项目中经常被列为常规功能来开发。不管是在开发.NET 项目还是java项目我们会用到非常多的框架,这个功能也被集成到了框架之中,由于他太经常使用了。框架就是为我们提供了一个开发项目的半成品结构。能够大大提高开发效率节省开发成本、缩短开发周期。
长话短说本文主要介绍一个怎么利用springmvc实现单个以及多个文件上传。附加说说上传文件的原理。
从详细的某个实例開始,先形似再神思
第一种方式设计思路:三个注意地方
1.表单页面
2.xml配置文件
3.uploadController类
在多次实践和开发的过程中会逐渐理解,编程思想和设计思路也相同非常重要。他们是在重复实践中的出来的经验结晶有时比实践还要重要,就像伟大的结果非常多是有伟大的思想開始的。
1.对于文件上传表单要有特殊的属性,例如以下
<form action="/springmvc7/file/upload2" enctype="multipart/form-data" method="post"> 选择文件:<input type="file" name="file"/> <input type="submit" value="上传" /> </form>
2.xml文件
<!-- 文件上传解析器配置以及大小编码等參数 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize" value="10485760000" /> <property name="maxInMemorySize" value="40960" /> </bean>
3.updaController.java
@Controller @RequestMapping("/file") public class UploadController { @RequestMapping("/upload") public String upload(@RequestParam("file") CommonsMultipartFile file ,HttpServletRequest request) throws IOException { System.out.println("filename---->"+file.getOriginalFilename()); if (!file.isEmpty()) { try { InputStream inputStream= file.getInputStream(); FileOutputStream outputStream = new FileOutputStream("D:/"+new Date().getTime()+file.getOriginalFilename()); int b=0; while ((b=inputStream.read()) != -1 ) { outputStream.write(b); } outputStream.flush(); outputStream.close(); inputStream.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } return "/success"; }
另外一种方式同第一种非常类似,仅仅是从request里面取数据,我们都知道前后台交互的数据都是通过request、response这两个对象交互。上传了文件也会在这里面仅仅要能从里面取出来就好。
uploadController2.java
@RequestMapping("/upload2") public void upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException { CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request; Iterator<String> iter=multipartRequest.getFileNames(); while(iter.hasNext()) { MultipartFile file=multipartRequest.getFile((String)iter.next()); if (file!=null) { String filename="demo"+file.getOriginalFilename(); String path="D:/"+filename; File localfile=new File(path); file.transferTo(localfile); } } } }
标签:ons 读取数据 项目 htm 文件 类型 原理 ack 方便
原文地址:http://www.cnblogs.com/gavanwanggw/p/7091457.html