文件的上传与下载

下载文件:

  1. 前端传下载文件的名称
  2. 后端找到文件的位置,拼接文件名称
  3. 整理文件的名称(想要用户看见的文件名称)
  4. 流读取文件内容,将内容写进输出流
public void fileDownload(String fileName, Boolean delete, HttpServletRequest request, HttpServletResponse response) {

        try {
            if (!FileUtils.isValidFileName(fileName)) {
                throw new Exception(String.format("文件名称:%s 非法,不允许下载", fileName));
            }

            // 浏览器中显示的文件名称
            //String realFileName = System.currentTimeMillis() + "-" + fileName.substring(fileName.indexOf("_") + 1);
            String realFileName = "下载的文件.xlsx";
            String filePath = globalProperties.getDownloadPath() + fileName;

            response.setCharacterEncoding("utf-8");
            //response.setContentType(new URL("file:///" + filePath).openConnection().getContentType());
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition", "attchment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));

			// 流读取过程
            FileUtils.writeBytes(filePath, response.getOutputStream());

            if (delete) {
                FileUtils.deleteFile(filePath);
            }

        } catch (Exception e) {
            LOGGER.info("下载文件失败", e);
        }

    }

上传文件

  1. 校验文件的属性,名称长度,文件大小,后缀等信息
  2. 在本地创建文件用来承储上传的文件。
  3. file.transferTo(localFile);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值