客户端请求:

平淡无奇,其实就是对应了在网址中输入url,浏览器就能直接下载文件:

服务器端处理:

  1. 根据请求参数找到文件
  2. 设置响应头:response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
  3. 将文件二进制数据保存到文件输入流
  4. 将文件二进制数据通过缓冲区保存到文件输出流
        // 首先根据请求,找到服务器端文件存储地址,并创建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请求及处理过程相关推荐

  1. feign 使用示例:动态url、动态参数、下载文件、请求体

    文章目录 构建FeignClient接口实现 动态url 带参数的请求 @Param 带动态参数的请求 @QueryMap 下载文件的请求 带请求体的请求 @Body 官方使用文档: 链接 https ...

  2. php post请求 下载文件,POST请求 下载文件

    通过axios发送POST请求 下载文件. 这时候的 Content-Type: application/json;charset=UTF-8 先贴axios({ method: 'post', ur ...

  3. php抓取curl下载文件,PHP 利用 Curl 函数实现多线程抓取网页和下载文件

    PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Cur ...

  4. 批量下载文件的设备和方法

    申请日期:2014年11月20日 申请人:北京安奇智联科技有限公司 [摘要] 本发明公开了一种驻留在移动终端中的批量下载文件的设备和方法.移动终端能够通过服务器与计算设备的浏览器相连.该批量下载文件的 ...

  5. 使用OkHttp 下载文件无进度回调 踩坑

    一.踩坑速记 1. 未添加header指定服务器采用何种压缩方式导致下载进度异常 描述:使用OkHttp3执行文件下载(服务端有nginx反向代理服务器进行压缩),获取回调中文件总大小为0或负值,导致 ...

  6. 安卓端微信H5下载文件处理:让微信自动弹起跳转外部浏览器窗口

    配套视频:https://www.bilibili.com/video/BV1oA411B7gv/ 背景 今天鼓捣了一下手机投屏到笔记本,就想录个视频展示一下学习成果,正好就想起了很早之前实现的这个功 ...

  7. Node.js实现下载文件

    第一种方式:使用原生的http模块 我们仅需要用到fs和http两个node.js的原生模块,不需要安装第三方模块,就可以实现文件的下载.代码如下: var fs = require('fs'); v ...

  8. 前端:下载文件(多种方法)

    一.简介 前端经常会有下载文件的需求,这里总结了几种常用的方法,方便日后查看. 二.a标签下载 <a href="https://abc.png" download=&quo ...

  9. Hbuilder打包web项目为app时,下载文件失效,下载出现问题解决

    问题描述:我是将我的web项目使用hbuilder打包成apk安装在手机上,然后使用下载功能的时候,跳转到报错页面,但是在pc端浏览器和手机浏览器上没有问题,报错页面如下: 其实这是因为使用a链接发送 ...

  10. linux curl 命令 http请求、下载文件、ftp上传下载

    1. curl 命令简介 cURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP.HTTPS. ...

最新文章

  1. R语言与数据分析(5)-基本操作
  2. Gartner 2022年新兴技术和趋势影响力雷达图中五项具有影响力的技术
  3. 用netty实现zcool_《Netty官方指南》把Netty当做一个通用的库
  4. httpHandlers
  5. 如何计算一只鸡的表面积?
  6. java在什么环境变量_Java-环境变量
  7. 一位Erlang程序员的自白
  8. 利用Java手写简单的httpserver
  9. 暮光之城2蓝光BD高清下载
  10. Python文件去重代码
  11. python计算三角形面积_利用python计算三角形的面积
  12. 4g+uim卡是什么卡_你知道SIM卡是什么吗?
  13. 阶段小练—篮球比赛计分器
  14. PDF怎么合并?这些合并方法你该知道
  15. springboot为什么返回Whitelabel Error Page
  16. 字体修改的一些心得以及方法分享
  17. VS2013出现未能正确加载 microsoft.visualstudio.editor.implementation.editorpackage的解决方法
  18. adb 命令输入字符串
  19. 壳牌公司是如何在Kubernetes上不到一天就建立了1万个AI模型的?
  20. 小米4发布了,“小米已江郎才尽”了吗

热门文章

  1. cimfax显示无法连接到服务器,CimFAX传真机软件
  2. JSESSIONID理解
  3. 江苏计算机二级c语言考试内容,江苏省计算机等级考试二级C语言考试大纲_复习提纲.doc...
  4. ifix如何设画面大小_组态软件实用技术教程第3章iFIX画面设计.ppt
  5. Java可以加速播放的播放器,android exoplayer最好用的视频播放器,倍速播放
  6. 苹果电脑安装windows系统 失败后 磁盘空间丢失
  7. 零基础自学SQL课程 | UNION 联合查询
  8. 被称为“圣经”的《计算机体系结构》
  9. 安卓dj专业打碟机软件_Mac平台上的专业DJ打碟软件
  10. SPSS——随机抽样