下载文件HTTP请求及处理过程
客户端请求:
平淡无奇,其实就是对应了在网址中输入url,浏览器就能直接下载文件:
服务器端处理:
- 根据请求参数找到文件
- 设置响应头:response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
- 将文件二进制数据保存到文件输入流
- 将文件二进制数据通过缓冲区保存到文件输出流
// 首先根据请求,找到服务器端文件存储地址,并创建File文件 File file = new File(filePath);filename = new String(filePath.getBytes("iso8859-1"),"UTF-8");//设置响应头,控制浏览器下载该文件response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));//读取要下载的文件,保存到文件输入流DataInputStream dataInputStream = new DataInputStream(new FileInputStream(file));//创建输出流out = response.getOutputStream();//缓存区byte bufferOut[] = new byte[1024];int bytes = 0;//循环将输入流中的内容读取到缓冲区中while ((bytes = dataInputStream.read(bufferOut)) != -1) {out.write(bufferOut, 0, bytes);}//关闭out.close();
上面极为关键的一步就是第二步,通过第二步,我们才能控制浏览器下载该文件。
下载文件HTTP请求及处理过程相关推荐
- feign 使用示例:动态url、动态参数、下载文件、请求体
文章目录 构建FeignClient接口实现 动态url 带参数的请求 @Param 带动态参数的请求 @QueryMap 下载文件的请求 带请求体的请求 @Body 官方使用文档: 链接 https ...
- php post请求 下载文件,POST请求 下载文件
通过axios发送POST请求 下载文件. 这时候的 Content-Type: application/json;charset=UTF-8 先贴axios({ method: 'post', ur ...
- php抓取curl下载文件,PHP 利用 Curl 函数实现多线程抓取网页和下载文件
PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Cur ...
- 批量下载文件的设备和方法
申请日期:2014年11月20日 申请人:北京安奇智联科技有限公司 [摘要] 本发明公开了一种驻留在移动终端中的批量下载文件的设备和方法.移动终端能够通过服务器与计算设备的浏览器相连.该批量下载文件的 ...
- 使用OkHttp 下载文件无进度回调 踩坑
一.踩坑速记 1. 未添加header指定服务器采用何种压缩方式导致下载进度异常 描述:使用OkHttp3执行文件下载(服务端有nginx反向代理服务器进行压缩),获取回调中文件总大小为0或负值,导致 ...
- 安卓端微信H5下载文件处理:让微信自动弹起跳转外部浏览器窗口
配套视频:https://www.bilibili.com/video/BV1oA411B7gv/ 背景 今天鼓捣了一下手机投屏到笔记本,就想录个视频展示一下学习成果,正好就想起了很早之前实现的这个功 ...
- Node.js实现下载文件
第一种方式:使用原生的http模块 我们仅需要用到fs和http两个node.js的原生模块,不需要安装第三方模块,就可以实现文件的下载.代码如下: var fs = require('fs'); v ...
- 前端:下载文件(多种方法)
一.简介 前端经常会有下载文件的需求,这里总结了几种常用的方法,方便日后查看. 二.a标签下载 <a href="https://abc.png" download=&quo ...
- Hbuilder打包web项目为app时,下载文件失效,下载出现问题解决
问题描述:我是将我的web项目使用hbuilder打包成apk安装在手机上,然后使用下载功能的时候,跳转到报错页面,但是在pc端浏览器和手机浏览器上没有问题,报错页面如下: 其实这是因为使用a链接发送 ...
- linux curl 命令 http请求、下载文件、ftp上传下载
1. curl 命令简介 cURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP.HTTPS. ...
最新文章
- R语言与数据分析(5)-基本操作
- Gartner 2022年新兴技术和趋势影响力雷达图中五项具有影响力的技术
- 用netty实现zcool_《Netty官方指南》把Netty当做一个通用的库
- httpHandlers
- 如何计算一只鸡的表面积?
- java在什么环境变量_Java-环境变量
- 一位Erlang程序员的自白
- 利用Java手写简单的httpserver
- 暮光之城2蓝光BD高清下载
- Python文件去重代码
- python计算三角形面积_利用python计算三角形的面积
- 4g+uim卡是什么卡_你知道SIM卡是什么吗?
- 阶段小练—篮球比赛计分器
- PDF怎么合并?这些合并方法你该知道
- springboot为什么返回Whitelabel Error Page
- 字体修改的一些心得以及方法分享
- VS2013出现未能正确加载 microsoft.visualstudio.editor.implementation.editorpackage的解决方法
- adb 命令输入字符串
- 壳牌公司是如何在Kubernetes上不到一天就建立了1万个AI模型的?
- 小米4发布了,“小米已江郎才尽”了吗
热门文章
- cimfax显示无法连接到服务器,CimFAX传真机软件
- JSESSIONID理解
- 江苏计算机二级c语言考试内容,江苏省计算机等级考试二级C语言考试大纲_复习提纲.doc...
- ifix如何设画面大小_组态软件实用技术教程第3章iFIX画面设计.ppt
- Java可以加速播放的播放器,android exoplayer最好用的视频播放器,倍速播放
- 苹果电脑安装windows系统 失败后 磁盘空间丢失
- 零基础自学SQL课程 | UNION 联合查询
- 被称为“圣经”的《计算机体系结构》
- 安卓dj专业打碟机软件_Mac平台上的专业DJ打碟软件
- SPSS——随机抽样