springmvc模式下的上传和下载

接触了springmvc模式后,对上一次的上传与下载进行优化,

上次请看这里

此处上传的功能依旧是采用表格上传。文件格式依旧是

    <form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">

后台则是

 @RequestMapping("/upload")
    public String upload(MultipartFile file,String userName,HttpServletRequest request) throws IOException {
        String filename = file.getOriginalFilename();

        String suffix = filename.substring(filename.lastIndexOf("."));

        if(suffix.equalsIgnoreCase(".jpg")){
            String uuid = UUID.randomUUID().toString();
            //FileUtils.copyInputStreamToFile(file.getInputStream(),new File("E://"+uuid+suffix));

            file.transferTo(new File("D://"+System.currentTimeMillis()+suffix));//位置存储在硬盘上
//            file.transferTo(new File(request.getServletContext().getRealPath("/")+"static/userImages/"+file));
//            存储在项目里的目录下
            request.setAttribute("result","上传成功");
            return "/result.jsp";
        }else{
            request.setAttribute("result","上传失败");
            return "/result.jsp";
        }
    }

相比之前的传统式上传,springmvc模式下封装了许多繁琐的过程,通过transferTo即可实现一些相应的操作

而下载也是相应的简化了许多

@RequestMapping("/download")
    public void download(String filename, HttpServletResponse response, HttpServletRequest request) throws IOException {
        response.setHeader("content-disposition","attachment;filename="+filename);

        ServletOutputStream outputStream = response.getOutputStream();

        String path = request.getServletContext().getRealPath("images");

        File file = new File(path,filename);

        byte[] bytes = FileUtils.readFileToByteArray(file);

        outputStream.write(bytes);

        outputStream.close();
    }

一般框架会省去许多重复性的工作,但底层的基本原理还是要清楚过程

原文地址:https://www.cnblogs.com/lin530/p/11794769.html

时间: 2024-08-01 08:47:58

springmvc模式下的上传和下载的相关文章

SpringMVC实现文件的上传和下载

前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流".我回复他说:"使用SpringMVC框架可以做到这一点,因为SpringMVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包."鉴于这个问题,我上网也百度了一下,网上很多都是介绍的使用IO流来实现文件的上传和下载,也有说到框架的,但介绍的并不是很完整,今天小钱将和大家介绍使用Spr

springmvc如何做到批量上传和下载的(单个下载)

springmvc的上传依靠MultipartHttpServletRequest来获取请求,通过请求来获取file前端的名字,从而获取MultipartFile, 代码如下: 其实就是获取上传的名字,指定上传的路径,然后指定上传到固定的地方,主要看for循环里面的,其他根据自己的业务逻辑来判断添加的, 下载: 下载也主要抓住两个要点:第一个:(1)需要设置下载的类型,contentype有不同的值,比如:text或html,可以传"text/html",如果是pdf,doc,又是另外

springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Upload to

浏览器兼容模式下,上传文件问题

//在浏览器的兼容模式下,页面没有上传图片的时候,file != null && file.Count > 0 && file[""] != null 是成立的.但file[""].FileName != ""是不成立的 if (file != null && file.Count > 0 && file["file"] != null &&a

Hadoop在HA模式下远程上传文件的实现

在非HA模式下,只须如下代码就可以轻松实现上传文件,标红的这句是关键 public class CopyToHDFS { public static void main(String[] args) throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://master:9000"); FileSystem fs = FileSyst

windows下ftp上传下载和一些常用命令

先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单,执行“运行”命令,在对话框中输入ftp,按下“确定”按钮将会切换至DOS窗口,出现命令提示符 ftp>键入命令连接FTP服务器: ftp> open home4u.at.china.com (回车) 稍等片刻,屏幕提示连接成功: ftp> connected to home4u.china.

IIS7下swfupload上传大文件出现404错误

要求上传附件大小限制在2G,原本以为可以轻松搞定.在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误.一直搞不明白,在网上搜索大概了解上传控件分为两种上传模式: 1,将文件一次性读到内存中,然后再写到服务上.这样,如果文件太大就会导致服务响应变慢. 2,国外的上传控件Lion.Web.UpLoadModule,AspnetUpload(我也是通过网上搜索的),是将文件分块读取,读一些,写一些到硬盘上

springmvc和servlet下的文件上传和下载(存文件目录和存数据库Blob两种方式)

项目中涉及了文件的上传和下载,以前在struts2下做过,今天又用springmvc做了一遍,发现springmvc封装的特别好,基本不用几行代码就完成了,下面把代码贴出来: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Uplo

在SpringMVC框架下实现文件的 上传和 下载

在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=&