SpringMvc的文件上传下载

28 篇文章 0 订阅
20 篇文章 0 订阅

上传下载要用到的jar包一般是这个三个

commons-fileupload-1.3.2.jar
commons-io-2.4.jar

spring-web-4.3.2.RELEASE.jar

 说到要用Mvc完成下载 就不得不说一下MultipartFile 这个类

MultipartFile 这个类是springmvc专门上传文件的一个类

使用这个类 我们首先要配置xml

<bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <property name="maxUploadSize" value="5000000"></property>
    </bean>

maxUploadSize配置文件的最大单位,单位为字节

maxInMemorySize配置上传文件的缓存 ,单位为字节

resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常

下面就是具体的方法

@RequestMapping(value="upload",method=RequestMethod.POST)
    public String upload(MultipartFile myFile,HttpServletRequest request) {

这里我们可以自定义自己文件要放的地方

String path = "C:\\Users\\Administrator\\Desktop\\fileupload";

 在myFile里面我们可以获取name 

//获取文件名并使用UUID生成新文件名
String fileName  = myFile.getOriginalFilename();

fileName .endWith("jpg")限定上传的文件类型

然后创建一个新文件 在你想存的盘中(这是创造一个文件里面没有内容)

File targetFile = new File(path,newFileName);

if(!targetFile.exists()) {
            targetFile.mkdirs();
        }
        //将文件写入硬盘
        try {
            myFile.transferTo(targetFile);

如果是上传多个文件是MultipartFile【】 myFile

for(MultipartFile  a  myFile)增强for循环

下载

下面是下载

下载最重要的是获取要下载的文件名称

和地址

 public ResponseEntity<byte[]> download(String filename,HttpServletRequest request)throws Exception {
        //下载文件路径
        //String path = request.getServletContext().getRealPath("upload");
        String path ="C:\\Users\\Administrator\\Desktop\\fileupload";
        File file = new File(path + "/" + filename);
        //开始设置http请求头
        HttpHeaders headers = new HttpHeaders();  
        //下载显示的文件名,解决中文名称乱码问题  
        String downloadFileName = new String(filename.getBytes("UTF-8"),"ISO-8859-1");
        //通知浏览器以attachment(下载方式)打开文件。!!!!!这里才是下载的重要步骤
        headers.setContentDispositionFormData("attachment", downloadFileName); 
        //设置mime:application/octet-stream : 二进制流数据(最常见的文件下载)。
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        return new ResponseEntity<byte[]>(
                       FileUtils.readFileToByteArray(file),    //把一个文件转换成字节数组返回
                       headers,                                                //http请求头
                       HttpStatus.OK                                      //200
                   );  
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值