文件上传

实现:文件上传,下载功能

问题:HTML的文件上传后台怎么实现?

前台<input type="file"> 后台怎么获取该文件并下载?学习HTML的时候知道这是文件上传,但是没写过后台的实现,网上找了很多,但是要导包,而且许多都是优化,我现在只需要这个功能实现即可

主要问题是我不知道后台怎么获取该元素,找了许久终于找到

@RequestParam("file")MultipartFile file即可获取到name属性为file的文件

可以通过file.getOriginalFilename()方法来获取上传的文件名

再通过字节流输出到指定位置
FileOutputStream() fos = null;
try{
byte[] fileData = file.getBytes();
fos = new FileOutputStream(url);
fos.write(fileData);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
即实现了文件上传功能,其中url为文件存放的地址。

文件下载
文件下载我们需要知道文件的位置一般与前台传过来的值有关
File file = new File(url);
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition",
"attachment;filename=" + new String(attachmentName.getBytes("gbk"), "iso-8859-1")); // 转码之后下载的文件不会出现中文乱码
response.addHeader("Content-Length", "" + file.length());
//这一部分不是自己写的,注释是按照别人来的,我没有验证过是否正确,但最后实现了下载功能
try {
// 以流的形式下载文件
InputStream fis = new BufferedInputStream(new FileInputStream(url));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();

OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (Exception e) {
e.printStackTrace();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值