⑴ 谁有springmvc multipartfile html5 多文件上传的示例代码,急!急!急!
<formid="fileUpload"action="<%=basePath%>template/fileUpload.do"enctype="multipart/form-data"method="post"class="form-horizontal"><divclass="modal-header"><buttontype="button"class="close"data-dismiss="modal"aria-hidden="true">×</button><h4class="modal-title"id="myModalLabel"style="color:#15428b;">上传</h4></div><divclass="modal-body"><inputtype="file"name="targetFile"><inputtype="file"name="targetFile"><inputtype="file"name="targetFile"></div><divclass="modal-footer"><buttonid="cancel"type="button"class="btnbtn-default"data-dismiss="modal">取消</button><buttontype="button"class="btnbtn-primary"onclick="uploadFile();">确认</button></div></form>@RequestMapping(value="/fileUpload.do")publicStringfileUpload(Modelmodel,@RequestParamMultipartFile[]targetFile,HttpServletRequestrequest,PageSplit<BankVo>pageSplit){try{FileOperationsUtil.uploadFileMVC(request,targetFile,"/files/temporary");model.addAttribute("msg","文件上传成功!");}catch(Exceptione){logger.error(e);model.addAttribute("msg","文件上传失败!");}returnthis.allButton(model,request,pageSplit);}publicstaticvoiploadFileMVC(HttpServletRequestrequest,MultipartFile[]fileSource,StringfileTarget){for(MultipartFilefile:fileSource){if(file.isEmpty()){System.out.println("文件未上传");}else{//如果用的是Tomcat服务器,则文件会上传到\%TOMCAT_HOME%\webapps\项目\fileTarget\文件夹中StringrealPath=request.getSession().getServletContext().getRealPath(fileTarget);//这里不必处理IO流关闭的问题,因为FileUtils.InputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的try{FileUtils.InputStreamToFile(file.getInputStream(),newFile(realPath,file.getOriginalFilename()));}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}
⑵ 请教spring mvc 的文件上传
springmvc文件上传1.加入jar包:commons-fileupload-1.2.2.jarcommons-io-2.0.1.jarlperson.java中加属性,实现get ,set方法private String photoPath;2.创建WebRoot/upload目录,存放上传的文件1 <sf:form id="p" action="saveOrUpdate" 2 method="post" 3 modelAttribute="person" 4 enctype="multipart/form-data">5 6 <sf:hidden path="id"/> 7 name: <sf:input path="name"/><br>8 age: <sf:input path="age"/><br>9 photo: <input type="file" name="photo"/><br>上面第9行文件上传框,不能和实体对象属性同名,类型不同 controller配置1 12、文件上传功能实现 配置文件上传解析器 2 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST) 3 public String saveOrUpdate(Person p, 4 @RequestParam("photo") MultipartFile file, 5 HttpServletRequest request 6 ) throws IOException{ 7 if(!file.isEmpty()){ 8 ServletContext sc = request.getSession().getServletContext(); 9 String dir = sc.getRealPath(“/upload”); //设定文件保存的目录10 11 String filename = file.getOriginalFilename(); //得到上传时的文件名12 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());13 14 p.setPhotoPath(“/upload/”+filename); //设置图片所在路径15 16 System.out.println("upload over. "+ filename);17 } 18 ps.saveOrUpdate(p); 19 return "redirect:/person/list.action"; //重定向20 }3.文件上传功能实现 spring-mvc.xml 配置文件上传解析器1 <!– 文件上传解析器 id 必须为multipartResolver –>2 <bean id="multipartResolver" 3 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">4 <property name="maxUploadSize" value=“10485760"/> 5 </bean>6 7 maxUploadSize以字节为单位:10485760 =10M id名称必须这样写1 映射资源目录2 <mvc:resources location="/upload/" mapping="/upload/**"/>随即文件名常用的三种方式:文件上传功能(增强:防止文件重名覆盖)fileName = UUID.randomUUID().toString() + extName;fileName = System.nanoTime() + extName;fileName = System.currentTimeMillis() + extName;1 if(!file.isEmpty()){ 2 ServletContext sc = request.getSession().getServletContext(); 3 String dir = sc.getRealPath("/upload"); 4 String filename = file.getOriginalFilename(); 5 6 7 long _lTime = System.nanoTime(); 8 String _ext = filename.substring(filename.lastIndexOf(".")); 9 filename = _lTime + _ext;10 11 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());12 13 p.setPhotoPath("/upload/"+filename);14 15 System.out.println("upload over. "+ filename);16 }图片显示 personList.jsp 1 <td><img src="${pageContext.request.contextPath}${p.photoPath}">${p.photoPath}</td>
⑶ 如何使用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;}}
⑷ spring mvc 怎么实现上传文件
springmvc文件上传1.加入jar包:commons-fileupload-1.2.2.jarcommons-io-2.0.1.jarlperson.java中加属性,实现get ,set方法private String photoPath;2.创建WebRoot/upload目录,存放上传的文件1 <sf:form id="p" action="saveOrUpdate" 2 method="post" 3 modelAttribute="person" 4 enctype="multipart/form-data">5 6 <sf:hidden path="id"/> 7 name: <sf:input path="name"/><br>8 age: <sf:input path="age"/><br>9 photo: <input type="file" name="photo"/><br>上面第9行文件上传框,不能和实体对象属性同名,类型不同 controller配置1 12、文件上传功能实现 配置文件上传解析器 2 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST) 3 public String saveOrUpdate(Person p, 4 @RequestParam("photo") MultipartFile file, 5 HttpServletRequest request 6 ) throws IOException{ 7 if(!file.isEmpty()){ 8 ServletContext sc = request.getSession().getServletContext(); 9 String dir = sc.getRealPath(“/upload”); //设定文件保存的目录10 11 String filename = file.getOriginalFilename(); //得到上传时的文件名12 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());13 14 p.setPhotoPath(“/upload/”+filename); //设置图片所在路径15 16 System.out.println("upload over. "+ filename);17 } 18 ps.saveOrUpdate(p); 19 return "redirect:/person/list.action"; //重定向20 }3.文件上传功能实现 spring-mvc.xml 配置文件上传解析器1 <!– 文件上传解析器 id 必须为multipartResolver –>2 <bean id="multipartResolver" 3 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">4 <property name="maxUploadSize" value=“10485760"/> 5 </bean>6 7 maxUploadSize以字节为单位:10485760 =10M id名称必须这样写1 映射资源目录2 <mvc:resources location="/upload/" mapping="/upload/**"/>随即文件名常用的三种方式:文件上传功能(增强:防止文件重名覆盖)fileName = UUID.randomUUID().toString() + extName;fileName = System.nanoTime() + extName;fileName = System.currentTimeMillis() + extName;1 if(!file.isEmpty()){ 2 ServletContext sc = request.getSession().getServletContext(); 3 String dir = sc.getRealPath("/upload"); 4 String filename = file.getOriginalFilename(); 5 6 7 long _lTime = System.nanoTime(); 8 String _ext = filename.substring(filename.lastIndexOf(".")); 9 filename = _lTime + _ext;10 11 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());12 13 p.setPhotoPath("/upload/"+filename);14 15 System.out.println("upload over. "+ filename);16 }图片显示 personList.jsp 1 <td><img src="${pageContext.request.contextPath}${p.photoPath}">${p.photoPath}</td>
⑸ springmvc怎么将上传本地文件到文件服务器
web文件上传采用post的方式,与post提交表单不同的是,上传文件需要设置form的enctype属性为multipart/form-data.由于上传的文版件会比较权大,因此需要设置该参数指定浏览器使用二进制上传。如果不设置,enctype属性默认为application/x-www-form-urlencoded,使用浏览器将使用ascii向服务器发送数据,导致发送文件失败。上传文件要使用文件域(,并把form的enctype设置为multipart/form-data.
⑹ springmvc 怎么将文件上传到linux服务器
Spring MVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。Spring使用Jakarta Commons FileUpload 技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。Spring MVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作。如果想要使用Spring的文件上传功能,需要先在上下文中配置MultipartResolver。第一步:配置MultipartResolver使用CommonsMultipartResolver配置一个MultipartResolver解析器:<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" p:maxUploadSize="5242880" p:uploadTempDir="upload/temp" />defaultEncoding必须和用户JSP的pageEncoding属性一致,以便正确读取表单的内容。uploadTempDir是文件上传过程所使用的临时目录,文件上传完成后,临时目录中的临时文件会被自动清除。第二步:编写文件上传表单页面和控制器JSP页面如下:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <h1>选择上传文件</h1> <form action="<%=basePath%>user/upload.do" method="post" enctype="multipart/form-data"> 文件名:<input type="text" name="name" /><br/> <input type="file" name="file" /><br/> <input type="submit" /> </form> </body></html>注意:负责上传的表单和一般表单有一些区别,表单的编码类型必须是"Multipart/form-data"控制器UserController如下:package com.web;import java.io.File;import java.io.IOException;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;@Controller@RequestMapping(value = "/user")public class UserController { @RequestMapping(value = "/upload.do") public String updateThumb(@RequestParam("name") String name, @RequestParam("file") MultipartFile file) throws IllegalStateException, IOException { if (!file.isEmpty()) { file.transferTo(new File("d:/temp/" + name + file.getOriginalFilename().substring( file.getOriginalFilename().lastIndexOf(".")))); return "redirect:success.html"; } else { return "redirect:fail.html"; } }}Spring MVC会将上传文件绑定到MultipartFile对象中。MultipartFile提供了获取上传文件内容、文件名等内容,通过transferTo方法还可将文件存储到硬件中,具体说明如下:byte[] getBytes() :获取文件数据 String getContentType():获取文件MIME类型,如image/pjpeg、text/plain等InputStream getInputStream():获取文件流String getName():获取表单中文件组件的名字String getOriginalFilename():获取上传文件的原名long getSize():获取文件的字节大小,单位为byteboolean isEmpty():是否有上传的文件void transferTo(File dest):可以使用该文件将上传文件保存到一个目标文件中源码:uploadtest.zip
⑺ java spring mvc 客户端上传文件到服务器端
Web文件上传采用POST的方式,与POST提交表单不同的是,上传文件需要设置FORM的enctype属性为multipart/form-data.由于上传的文件会比较大,因此需要设置该参数指定浏览器使用二进制上传。如果不设置,enctype属性默认为application/x-www-form-urlencoded,使用浏览器将使用ASCII向服务器发送数据,导致发送文件失败。上传文件要使用文件域(<input type='file'/>,并把FORM的Enctype设置为multipart/form-data.
⑻ SpringMVC commons-fileupload 上传服务器controller部分怎么写求指导(新手请附代码及详细注释)
看看lib里面有没有
commons-fileupload-1.2.2.jar
commons-io-2.1.jar
这两个包
1:配置文件里加上<!– 文件上传 –><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"/> <!– 指定所上传文件的最大值单位Byte。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 –> <property name="maxUploadSize" value="10000000"/> </bean>2:页面form表单的form标签里面加上enctype="multipart/form-data"3:<input style="HEIGHT: 22px;width:200px;" type="file" name="myfile" onchange="fileChange(this);"/>里的name名称和controller里的name一致
http://blog.csdn.net/jadyer/article/details/7575934这个是参考的博客
⑼ spring mvc word文件上传功能
springmvc文件上传1.加入jar包:commons-fileupload-1.2.2.jarcommons-io-2.0.1.jarlperson.java中加属性,实现get ,set方法private String photoPath;2.创建WebRoot/upload目录,存放上传的文件1 <sf:form id="p" action="saveOrUpdate" 2 method="post" 3 modelAttribute="person" 4 enctype="multipart/form-data">5 6 <sf:hidden path="id"/> 7 name: <sf:input path="name"/><br>8 age: <sf:input path="age"/><br>9 photo: <input type="file" name="photo"/><br>上面第9行文件上传框,不能和实体对象属性同名,类型不同controller配置1 12、文件上传功能实现 配置文件上传解析器2 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)3 public String saveOrUpdate(Person p,4 @RequestParam("photo") MultipartFile file,5 HttpServletRequest request6 ) throws IOException{7 if(!file.isEmpty()){8 ServletContext sc = request.getSession().getServletContext();9 String dir = sc.getRealPath(“/upload”); //设定文件保存的目录10 11 String filename = file.getOriginalFilename(); //得到上传时的文件名12 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());13 14 p.setPhotoPath(“/upload/”+filename); //设置图片所在路径15 16 System.out.println("upload over. "+ filename);17 } 18 ps.saveOrUpdate(p); 19 return "redirect:/person/list.action"; //重定向20 }3.文件上传功能实现 spring-mvc.xml 配置文件上传解析器1 <!– 文件上传解析器 id 必须为multipartResolver –>2 <bean id="multipartResolver" 3 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">4 <property name="maxUploadSize" value=“10485760"/> 5 </bean>6 7 maxUploadSize以字节为单位:10485760 =10M id名称必须这样写1 映射资源目录2 <mvc:resources location="/upload/" mapping="/upload/**"/>随即文件名常用的三种方式:文件上传功能(增强:防止文件重名覆盖)fileName = UUID.randomUUID().toString() + extName;fileName = System.nanoTime() + extName;fileName = System.currentTimeMillis() + extName;1 if(!file.isEmpty()){2 ServletContext sc = request.getSession().getServletContext();3 String dir = sc.getRealPath("/upload");4 String filename = file.getOriginalFilename();5 6 7 long _lTime = System.nanoTime();8 String _ext = filename.substring(filename.lastIndexOf("."));9 filename = _lTime + _ext;10 11 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());12 13 p.setPhotoPath("/upload/"+filename);14 15 System.out.println("upload over. "+ filename);16 }图片显示 personList.jsp1 <td><img src="${pageContext.request.contextPath}${p.photoPath}">${p.photoPath}</td>
⑽ springmvc怎么上传文件
SpringMVC上传文件的三种方式前台:<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><form name="serForm" action="/SpringMVC006/fileUpload" method="post" enctype="multipart/form-data"><h1>采用流的方式上传文件</h1><input type="file" name="file"><input type="submit" value="upload"/></form> <form name="Form2" action="/SpringMVC006/fileUpload2" method="post" enctype="multipart/form-data"><h1>采用multipart提供的file.transfer方法上传文件</h1><input type="file" name="file"><input type="submit" value="upload"/></form> <form name="Form2" action="/SpringMVC006/springUpload" method="post" enctype="multipart/form-data"><h1>使用spring mvc提供的类的方法上传文件</h1><input type="file" name="file"><input type="submit" value="upload"/></form></body></html>配置: <!– 多部分文件上传 –><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="104857600" /> <property name="maxInMemorySize" value="4096" /> <property name="defaultEncoding" value="UTF-8"></property></bean>后台:方式一: /* * 通过流的方式上传文件 * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象 */ @RequestMapping("fileUpload") public String fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException { //用来检测程序运行时间 long startTime=System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); try { //获取输出流 OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename()); //获取输入流 CommonsMultipartFile 中可以直接得到文件的流 InputStream is=file.getInputStream(); int temp; //一个一个字节的读取并写入 while((temp=is.read())!=(-1)) { os.write(temp); } os.flush(); os.close(); is.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } long endTime=System.currentTimeMillis(); System.out.println("方法一的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "/success"; }方式二:/* * 采用file.Transto 来保存上传的文件 */ @RequestMapping("fileUpload2") public String fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException { long startTime=System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); String path="E:/"+new Date().getTime()+file.getOriginalFilename(); File newFile=new File(path); //通过CommonsMultipartFile的方法直接写文件(注意这个时候) file.transferTo(newFile); long endTime=System.currentTimeMillis(); System.out.println("方法二的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "/success"; }方式三:/* *采用spring提供的上传文件的方法 */ @RequestMapping("springUpload") public String springUpload(HttpServletRequest request) throws IllegalStateException, IOException { long startTime=System.currentTimeMillis(); //将当前上下文初始化给 CommonsMutipartResolver (多部分解析器) CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver( request.getSession().getServletContext()); //检查form中是否有enctype="multipart/form-data" if(multipartResolver.isMultipart(request)) { //将request变成多部分request MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request; //获取multiRequest 中所有的文件名 Iterator iter=multiRequest.getFileNames(); while(iter.hasNext()) { //一次遍历所有文件 MultipartFile file=multiRequest.getFile(iter.next().toString()); if(file!=null) { String path="E:/springUpload"+file.getOriginalFilename(); //上传 file.transferTo(new File(path)); } } } long endTime=System.currentTimeMillis(); System.out.println("方法三的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "/success"; }我们看看测试上传的时间:第一次我用一个4M的文件:fileName:test.rar方法一的运行时间:14712msfileName:test.rar方法二的运行时间:5ms方法三的运行时间:4ms第二次:我用一个50M的文件方式一进度很慢,估计得要个5分钟方法二的运行时间:67ms方法三的运行时间:80ms从测试结果我们可以看到:用springMVC自带的上传文件的方法要快的多!对于测试二的结果:可能是方法三得挨个搜索,所以要慢点。不过一般情况下我们是方法三,因为他能提供给我们更多的方法