spring上传下载文件

不使用第三方上传和下载。

上传文件:

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
    public void uploadFile(HttpServletRequest request) {

        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        String path = File.separator + "Files";
        String realPath = request.getSession().getServletContext().getRealPath(path);
        String fileName;
        String fileType;
        MultipartFile mf;
        File uploadFile;
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            mf= entity.getValue();
            fileName = mf.getOriginalFilename();
            fileType= fileName.substring(fileName.lastIndexOf(".") + 1);
            String filePath = fileName + "." + fileType;
            uploadFile = new File(realPath + File.separator + filePath);
            try {
                mf.transferTo(uploadFile);
            }catch (Exception e)
            {
                e.printStackTrace();
            }
        }

    }
上面是获取所有上传文件,也可以获取指定名称的文件

MultipartFile userImg = multipartRequest.getFile("paramName");
下载文件:
@RequestMapping("/download")  
     public void downloadFile(String fileName,HttpServletResponse response){    
        response.setCharacterEncoding("utf-8");    
        response.setContentType("multipart/form-data");    
        response.setHeader("Content-Disposition", "attachment;fileName="+fileName);    
        try {    
            File file=new File(fileName);       
            InputStream inputStream=new FileInputStream("file/"+file);    
            OutputStream os=response.getOutputStream();    
            byte[] b=new byte[1024];    
            int length;    
            while((length=inputStream.read(b))>0){    
                os.write(b,0,length);    
            }    
            inputStream.close();    
        } catch (FileNotFoundException e) {    
            e.printStackTrace();    
        } catch (IOException e) {    
            e.printStackTrace();    
        }    
    } 



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值