首页 > 代码库 > 利用Spring处理文件上传
利用Spring处理文件上传
文件上传有很多中方式,之前写过一个利用DiskFileItemFactory实现文件上传的例子,这次项目中使用了新的方式,通过MultipartHttpServletRequ
输出方式一:
<span style="white-space:pre"> </span>//对request进行包装 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //根据名称获取MultipartFile文件对象 MultipartFile headFile = multipartRequest.getFile("headFile"); logger.debug("--------------------------------------------->file operation starting..."); logger.debug("----------------->headFile:"+headFile.getName()+ "\ttype:"+headFile.getContentType()+"\tsize:"+headFile.getSize()); //获取文件流 FileInputStream headIn = (FileInputStream) headFile.getInputStream(); FileOutputStream headOut = new FileOutputStream("d:/headFile.jpeg"); byte[] bytes = new byte[1024]; do{ headIn.read(bytes,0,1024); headOut.write(bytes); }while(headIn.available() > 0); headIn.close(); headOut.close(); logger.debug("--------------------------------------------->file operation success!!!");
文件上传到了指定目录下了!
使用过的朋友可能会问到了,为什么不用另一种更简单的方式呢?别急,下面我们看MultipartFile自带的输出方法。
输出方式二:
<span style="white-space:pre"> </span>//对request进行包装 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //根据名称获取MultipartFile文件对象 MultipartFile headFile = multipartRequest.getFile("headFile"); logger.debug("--------------------------------------------->file operation starting..."); logger.debug("----------------->headFile:"+headFile.getName()+ "\ttype:"+headFile.getContentType()+"\tsize:"+headFile.getSize()); //直接输出到执行的目录下 headFile.transferTo(new File("d:/little bear.jpeg"));
看到了吧,同样的,文件上传了╮(╯▽╰)╭很简单吧!
下面我们看看MultipartFile这个接口源码:
interface MultipartFile { <span style="white-space:pre"> </span>public byte[] getBytes(); <span style="white-space:pre"> </span>public String getContentType(); <span style="white-space:pre"> </span>public java.io.InputStream getInputStream(); <span style="white-space:pre"> </span>public String getName(); <span style="white-space:pre"> </span>public String getOriginalFilename(); <span style="white-space:pre"> </span>public long getSize(); <span style="white-space:pre"> </span>public boolean isEmpty(); <span style="white-space:pre"> </span>public void transferTo(java.io.File dest); }
在MultipartFile接口中定义了如下很多有用的方法。
l、使用getSize()方法获得文件长度,以此决定允许上传的文件大小。
2、使用isEmpty()方法判断上传文件是否为空文件,以此决定是否拒绝空文件。
3、使用getInputStream()方法将文件读取为java.io.InputStream流对象。
4、使用getContentType()方法获得文件类型,以此决定允许上传的文件类型。
5、使用transferTo(dest)方法将上传文件写到服务器上指定的文件。
利用这些方法组合我们可以对上传的文件进行限制,举一反三不讲解了,仅此抛个砖╮(╯▽╰)╭作者:伫望碧落 出处:http://blog.csdn.net/cl05300629
利用Spring处理文件上传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。