SpringBoot:文件的上传与下载

上传(注:不需要添加任何依赖):

@RequestMapping(value = "htmlUpload", method = RequestMethod.POST)
@ResponseBody
public Object htmlUpload(@RequestParam(value = "t_pic", required = false) MultipartFile pic
        , HttpServletRequest request) {

    String fileName = "";
    String newName = "";
    if (!pic.isEmpty()) {
        {

            if (pic.getSize() <= 1048576) {
                System.out.println(pic.getSize());
                String path = request.getSession().getServletContext().getRealPath("static/img");
                fileName = pic.getOriginalFilename();
                newName = UUID.randomUUID().toString() + "." + FilenameUtils.getExtension(fileName);
                //System.out.println("重命名的文件名:" + newName);
                File file = new File(path, newName);
                System.out.println("项目中态资源文件夹中img的路径" + path);
                try {
                    pic.transferTo(file);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return "上传成功";
            }
        }
    }
    return "上传失败";
}

下载:

@RequestMapping(value = "/testDownload", method = RequestMethod.GET)
public void Download(HttpServletResponse res) {
    String fileName = "FLAMING MOUNTAIN.JPG";
    res.setHeader("content-type", "application/octet-stream");
    res.setContentType("application/octet-stream");
    res.setHeader("Content-Disposition", "attachment;filename=" + fileName);
    byte[] buff = new byte[1024];
    BufferedInputStream bis = null;
    OutputStream os = null;
    try {
        os = res.getOutputStream();
        bis = new BufferedInputStream(new FileInputStream(new File("C:\\Users\\123\\Pictures\\"
                + fileName)));
        int i = bis.read(buff);
        while (i != -1) {
            os.write(buff, 0, buff.length);
            os.flush();
            i = bis.read(buff);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (bis != null) {
            try {
                bis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    System.out.println("success");
}

最后,直接上页面
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>html文件上传</title>
</head>
<body>
<p>html文件上传</p>
<form  action="/htmlUpload" method="post" enctype="multipart/form-data">
    <p><input type="file" name="t_pic"> <input type="submit"  id="sc" value="上传">   </p>
</form>
<br>
<a href="/testDownload">下载</a>
</body>
</html>


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值