SpringMVC文件上传与下载的实现
来源:互联网 发布:动物相机软件 编辑:程序博客网 时间:2024/05/16 00:44
最近做了一些文件上传与下载的模块,今天把它整理了一下。
文件上传与下载的主要实现如下:
@RequestMapping(method=RequestMethod.POST) public String upload(HttpServletRequest request, @RequestParam("description") String description, @RequestParam("file") MultipartFile file,Model model) throws Exception {// //不使用注解//MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;////获取file//MultipartFile file = multipartRequest.getFile("file"); //如果文件不为空,写入上传路径 if(!file.isEmpty()) { //上传文件路径 String path = request.getSession().getServletContext().getRealPath("/ooxx/"); //上传文件名 String filename = file.getOriginalFilename(); File filepath = new File(path,filename); //判断路径是否存在,如果不存在就创建一个 if (!filepath.getParentFile().exists()) { filepath.getParentFile().mkdirs(); } //将上传文件保存到一个目标文件当中 file.transferTo(new File(path + File.separator + filename)); model.addAttribute("filename", filename); return "download"; } else { return "error"; } } @RequestMapping public ResponseEntitydownload(HttpServletRequest request, @RequestParam("filename") String filename, Model model)throws Exception { //下载文件路径 String path = request.getSession().getServletContext().getRealPath("/ooxx/"); //由配置文件获取// String path=(String) request.getSession().getServletContext().getAttribute("path"); HttpHeaders headers = new HttpHeaders(); //下载显示的文件名,解决中文名称乱码问题 // String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1"); String downloadFielName = URLDecoder.decode(filename, "UTF-8"); File file = new File(path + File.separator + downloadFielName); //通知浏览器以attachment(下载方式)打开文件 headers.setContentDispositionFormData("attachment", new String(downloadFielName.getBytes("UTF-8"),"iso-8859-1")); //application/octet-stream : 二进制流数据(最常见的文件下载)。 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);//设置MIME类型 //用FileUpload组件的FileUtils读取文件,并构建成ResponseEntity 返回给浏览器 //HttpStatus.CREATED是HTTP的状态码201 return new ResponseEntity (FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); }
页面部分比较简单就不贴出来了,实现的效果是这样的:
实际开发过程中由于使用的Spring版本比较低的,所以一些最新的注解以及方法不能使用,然后使用了一些替代的方法,
另外在项目中使用到的路径是从内存中读取的并不是项目路径,具体的实现在demo中都有。
另外在项目中使用到的路径是从内存中读取的并不是项目路径,具体的实现在demo中都有。
demo下载地址:http://download.csdn.net/download/lazyrabbitlll/9995875
阅读全文
0 0
- SpringMVC实现文件的上传与下载
- SpringMVC文件上传与下载的实现
- SpringMVC---实现文件上传与下载
- SpringMVC实现文件上传与下载
- SpringMVC 实现文件的上传与下载--较为原始
- springMVC实现文件的上传和下载
- SpringMVC实现文件的上传和下载
- SpringMVC文件的上传与下载
- SpringMVC文件的上传与下载
- springMVC文件的上传与下载
- SpringMVC的文件上传与下载
- SpringMVC的文件上传与下载
- 基于springmvc的文件上传与下载
- SPringMVC的文件上传与下载
- springMVC+commons文件的上传与下载
- SpringMVC文件下载与上传
- SpringMVC文件上传与下载
- springmvc 文件上传与下载
- android中获取设备信息
- Linux CenterOS6/rhel6安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
- nginx防恶意刷新
- 使用WindowsAPI获取录音音频的方法
- mybatis进阶之旅
- SpringMVC文件上传与下载的实现
- spring boot项目实战:跨域问题解决
- Git--git help 获取帮助
- vue下鼠标按住滑动
- Python+pycharm安装详细教程
- MFC文件操作大全
- tcp keeplive
- 从Uncaught SyntaxError: Unexpected token ")" 问题看javascript:void的作用
- HDU 6141 I am your Father!(最小树形图)