Java Web实现 使用浏览器从服务器下载文件。
下面实现两种情况的下载,需求如下:

需求(一):
1、用户在页面填写表单。
2、填写完成后,选择下载,将表单内容发往后台。
3、后台根据内容生产一个文件,发送给前端。
4、前端成功下载文件到本地。
此需求简单来说就是,用户在页面上填写内容,然后将内容转变成文件的形式。

后台设计思路:
1、首先拿到前端发送过来的内容。
2、将内容解析,存放至缓冲区。
3、设置响应头。
4、将缓冲区里的内容,以流的方式写出。

代码实现:

public void download(HttpServletResponse response){
JSONObject json = new JSONObject();
/* 假设这是前端使用JSON放过来的数据 */
json.put("A","1");
json.put("B","2");
json.put("C","3");
/* 遍历JSON,将JSON的值放至缓冲区 */
StringBuilder sb = new StringBuilder();
Iterator it = json.keys();
while(it.hasNext()){
String key = (String)it.next();
String value = (String)json.get(key);
sb.append(key).append("=").append(value).append("\n");
}
/* 设置文件ContentType类型,这样设置,会自动判断下载文件类型 */
response.setContentType("application/multipart/form-data");
/* 设置文件头:最后一个参数是设置下载文件名(假如我们叫a.ini) */
response.setHeader("Content-Disposition", "attachment;filename=a.ini");
try{
/* 用流将数据写给前端 */
OutputStream os = response.getOutputStream();
os.write(sb.toString().getBytes());
os.flush();
os.close();
}catch (IOException ioe){
ioe.printStackTrace();
}
}

需求(二):
1、用户指定下载什么文件。
2、成功下载文件到本地。

后台设计思路:
1、首先获取前端需要下载什么文件。
2、找到文件在服务器上面的路径。
3、将文件读进内存
4、将文件以流的方式写出。

代码实现:

 public void download() throws  IOException{
//获取服务器文件
File file = new File("/home/a.txt"); InputStream ins = new FileInputStream(file);
/* 设置文件ContentType类型,这样设置,会自动判断下载文件类型 */
response.setContentType("multipart/form-data");
/* 设置文件头:最后一个参数是设置下载文件名 */
response.setHeader("Content-Disposition", "attachment;filename="+file.getName());
try{
OutputStream os = response.getOutputStream();
byte[] b = new byte[1024];
int len;
while((len = ins.read(b)) > 0){
os.write(b,0,len);
}
os.flush();
os.close();
ins.close();
}catch (IOException ioe){
ioe.printStackTrace();
}
}

链接:https://blog.csdn.net/qq_28082757/article/details/72771166

Java Web实现使用浏览器从服务器下载文件(后台)的更多相关文章

  1. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

    问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下 ...

  2. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  3. 【FTP】C# System.Net.FtpClient库连接ftp服务器(下载文件)

    如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用. 那就是System.Net.FtpClient,链接地址:https://net ...

  4. (4)FTP服务器下载文件

    上一篇中,我们提到了怎么从FTP服务器下载文件.现在来具体讲述一下. 首先是路径配置.. 所以此处我们需要一个app.config来设置路径. <?xml version="1.0&q ...

  5. Python 实现批量从不同的Linux服务器下载文件

    基于Python实现批量从不同的Linux服务器下载文件   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...

  6. 从Linux服务器下载文件到本地命令

    从Linux服务器下载文件夹到本地1.使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件 ...

  7. 从Linux服务器下载文件夹到本地

    从Linux服务器下载文件夹到本地 1.使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文 ...

  8. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  9. java web 学习三(Tomcat 服务器学习和使用2)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

随机推荐

  1. gulp打包js多个文件夹并压缩混淆,编译ES6语法,及多个import依赖由一个入口打包成一个cdn

    感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件g ...

  2. Go源码文件与命令

    Go源码文件 文件类型 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题, ...

  3. 【Python】浮点数用科学计数法表示

  4. centos7 tar.gz zip 解压命令

    tar负责打包,gzip负责压缩 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个, ...

  5. sftp,ftp文件下载

    一.sftp工具类 package com.ztesoft.iotcmp.util; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsc ...

  6. 12c的PDB创建DIRECTORY要注意与PATH_PREFIX的关系(ORA-65254)

    在创建PDB过程中如果使用了带PATH_PREFIX的参数,意味着在创建DIRECTORY目录时需要指定相对路径,而不能指定其它绝对路径.来自博客园AskScuti 11g整库作为一个PDB迁移至阿里 ...

  7. css之float(浮动)的特性

    详解CSS float属性  float本身不脱离文档流,但是和 position:absolute;搭配使用会脱离文档流 阅读目录 基础知识 float的详细细节 float特殊情况 clear属性 ...

  8. JS jQuery 点击页面弹出文字

    <style> .animate{ animation:myfirst 3s; -moz-user-select:none;/*火狐*/ -webkit-user-select:none; ...

  9. 用阿里fastJson解析Json字符串

    一下总结来自工作代码: 1.第一种情况: 通过服务器端发送http请求获取的接送字符串. String jsonStr = HttpRequestUtil.sendGet(config.getAddr ...

  10. Python入门2 —— 变量

    一:问号三连 1.什么是变量? 变 指的是事物的状态是可以发生变化的 量 指的是记录事物的状态 2.为什么要有变量? 为了让计算机像人一样去记录事物的状态 3.怎么用变量? 先定义 后引用 二:变量的 ...