java 如何实现文件下载 需要区分图片 文件 还是视频吗?还是说不管什么类型的文件后台逻辑处理都是一样的,具体如何实现呢
4条回答 默认 最新
- 烽煙 2017-07-13 07:51关注
String filename = request.getParameter("path"); File file = new File(filename); BufferedInputStream is = new BufferedInputStream(new FileInputStream(file)); // 放到缓冲流里面 BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); // 获取文件输出IO流 response.setContentType("application/x-download"); // 设置response内容的类型 response.setHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); // 设置头部信息 int bytesRead = 0; byte[] buffer = new byte[1024]; // 开始向网络传输文件流 while ((bytesRead = is.read(buffer, 0, 1024)) != -1) { bos.write(buffer, 0, bytesRead); } bos.flush(); // 这里一定要调用flush()方法 is.close(); bos.close(); 思路就是前台给链接地址,参数提交给后台,服务器根据参数获取文件,通过流进行传输。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 制裁名单20240508芯片厂商
- ¥20 易康econgnition精度验证
- ¥15 msix packaging tool打包问题
- ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致