springmvc下载文件|如何使用springmvc实现文件上传

springmvc下载文件|如何使用springmvc实现文件上传的第1张示图

⑴ springmvc下载的名称是数据库中保存的名称

下载输出流的时候就能命名文件名啊,你说的不能让用户手动改文件名是什么意思?下载的时候用户都可以重命名,你控制不了。

⑵ 如何使用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;}}

⑶ springmvc怎么读取文件

SpringMVC默认是关闭fileupload功能的,开启该能够并验证文件上传,需要做如下几件事情:第一:打开SpringMVC的文件上传功能:***-servlet.xml中配置:<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="100000"/><property name="maxInMemorySize" value="10240" /></bean>配置后,当SpringMVC接受到multipartRequest的时候,就会把HttpServletRequest转为MultipartHttpServletRequest类型,第二步:创建上传文件的file.jsp:<form action="dynamicFields.action?method=uploadFile" method="post" enctype="multipart/form-data"><input type="file" name="myfile" id="myfile" value="" /><br/><input type="submit" value="确认提交"></form>一定不要漏掉enctype="multipart/form-data",否则web容器认为这不是一个MultipartRequest请求,会报错org.springframework.web.multipart.MultipartException: The current request is not a multipart request。第三步:Controller层创建代码:@RequestMapping(params = {"method=uploadFile"})public ModelAndView uploadFile(@RequestParam("myfile") MultipartFile myfile,HttpServletRequest request, HttpServletResponse response) throws Exception {if(!myfile.isEmpty()){logger.info(myfile.getName());byte[] bs= myfile.getBytes() ;logger.info(new String(bs));}return null;}部署web应用运行后,能够看到控制台中打印出上传文件的内容,BINGO搞定(SpringMVC依赖common-fileupload.jar,需要加载该jar包)

⑷ springmvc下载文件出错

那就需要看看你的后台代码了。这个东西有通用下载类的。可以对比下哪里出错了。代码没问题的话 看看换个浏览器试试,有些浏览器的处理方式不同

⑸ 请教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文件上传怎么获取文件的大小

在上一篇文章中,主要介绍了Spirng MVC环境下的正常情况下文件上传功能实现。在实际开发的时候,还会涉及到上传文件大小和类型的限制,接下来就会对Spirng MVC环境下文件上传大小和类型的限制进行介绍,还会讲解到文件上传大小tomcat服务器bug问题及解决方案。

网页链接

⑺ springMVC实现文件下载时客户端怎么接收下载的文件

http://blog.csdn.net/geloin/article/details/7537425我刚试了下载是可以的专。属

⑻ spring MVC 与mybatis框架来实现文件上传下载 求解决

去github上搜“fileupload spring”。参考项目一大把。

⑼ springmvc怎么实现多文件上传

多文件上传其实很简单,和上传其他相同的参数如checkbox一样,表单中使用相同的名称,然后action中将MultipartFile参数类定义为数组就可以。接下来实现:1、创建一个上传多文件的表单:在CODE上查看代码片派生到我的代码片<body><h2>上传多个文件 实例</h2><form action="filesUpload.html" method="post"enctype="multipart/form-data"><p>选择文件:<input type="file" name="files"><p>选择文件:<input type="file" name="files"><p>选择文件:<input type="file" name="files"><p><input type="submit" value="提交"></form></body> 2、编写处理表单的action,将原来保存文件的方法单独写一个方法出来方便共用:[java] view plain print?在CODE上查看代码片派生到我的代码片/**** 保存文件* @param file* @return*/private boolean saveFile(MultipartFile file) {// 判断文件是否为空if (!file.isEmpty()) {try {// 文件保存路径String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"+ file.getOriginalFilename();// 转存文件file.transferTo(new File(filePath));return true;} catch (Exception e) {e.printStackTrace();}}return false;}3、编写action:@RequestMapping("filesUpload")public String filesUpload(@RequestParam("files") MultipartFile[] files) {//判断file数组不能为空并且长度大于0if(files!=null&&files.length>0){//循环获取file数组中得文件for(int i = 0;i<files.length;i++){MultipartFile file = files[i];//保存文件saveFile(file);}}// 重定向return "redirect:/list.html";}

⑽ 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自带的上传文件的方法要快的多!对于测试二的结果:可能是方法三得挨个搜索,所以要慢点。不过一般情况下我们是方法三,因为他能提供给我们更多的方法

未经允许不得转载:山九号 » springmvc下载文件|如何使用springmvc实现文件上传

赞 (0)