java IOUtils copy and flush client
来源:互联网 发布:淘宝店标logo生成器 编辑:程序博客网 时间:2024/06/05 20:22
HTTP请求头提供了请求、响应或者其他的发送实体的信息,HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。
几个主要头的作用:
(1)Content-Type:当前内容的MIME类型 ,服务器告诉浏览器它发送的的数据属于什么文件类型
例如:response.setContentType("application/octet-stream;charset=UTF-8");用于下载各类文件,application/octet-stream表示二进制数据,text/html表示HTML,text/plain表示普通文本
(2)Content-Disposition:对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。
文件名乱码问题
response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"",java.net.URLEncoder.encode(filename, "UTF-8")));
(3)Expires:指定一个日期/时间,超过该时间则认为此回应已经过期
response.setHeader("Expires", "0");
(4)Pragma:与具体的实现相关,这些响应头可能在请求/回应链中的不同时候产生不同的效果
response.setHeader("Pragma", "no-cache");
public static void handleDownloadAndDelete(String filePath,
HttpServletRequest request, HttpServletResponse response) {File file = new File(filePath);
try (FileInputStream fis = new FileInputStream(file);
ServletOutputStream outputStream = response.getOutputStream()) {
String filename = file.getName();
response.setHeader("Content-Disposition", String.format(
"attachment; filename=\"%s\"",
java.net.URLEncoder.encode(filename, "UTF-8")));
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
IOUtils.copy(fis, outputStream);
outputStream.flush();
} catch (IOException e) {
logger.warn("handleDownload-Exception:", e);
}
FileUtils.deleteQuietly(file);
}
public static void handleDownloadNoDelete(String filePath,
HttpServletRequest request, HttpServletResponse response) {
File file = new File(filePath);
try (FileInputStream fis = new FileInputStream(file);
ServletOutputStream outputStream = response.getOutputStream()) {
String filename = file.getName();
response.setHeader("Content-Disposition", String.format(
"attachment; filename=\"%s\"",
java.net.URLEncoder.encode(filename, "UTF-8")));
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
IOUtils.copy(fis, outputStream);
outputStream.flush();
} catch (IOException e) {
logger.warn("handleDownload-Exception:", e);
}
}
public static void handleDownloadfromStream(InputStream inputStream,
String fileName, HttpServletRequest request,
HttpServletResponse response) {
try (ServletOutputStream outputStream = response.getOutputStream()) {
response.setHeader("Content-Disposition", String.format(
"attachment; filename=\"%s\"",
java.net.URLEncoder.encode(fileName, "UTF-8")));
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
IOUtils.copy(inputStream, outputStream);
outputStream.flush();
} catch (IOException e) {
logger.warn("handleDownload-Exception:", e);
}
}
- java IOUtils copy and flush client
- StringUtils、IOUtils and FileUtils
- Client copy
- Java中IOUtils
- org.apache.commons.io.IOUtils IOUtils.copy与IOUtils.closeQuietly的用法
- Java Clone, Shallow Copy and Deep Copy
- IOUtils
- IOUtils
- IOUtils
- java flush()
- HIbernate commit() and flush()
- differences between “java -server” and “java -client”
- SAP CLIENT COPY
- Client copy出错
- sap client copy
- SAP Client Copy 过程
- SAP Client Copy
- stms client copy
- Curiously Recurring Template Pattern
- calico在kubernetes中的策略
- Sugar ORM——让你不用学SQLite数据库
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- java学习笔记-窗口绘图(坦克大战)
- java IOUtils copy and flush client
- 自我实践
- Failed to install Hi.apk on device 'emulator-5554': EOF
- 深度学习史上最全总结(文末有福利)
- 博客的使用
- 浅谈EL的隐含对象
- Android屏幕适配
- 1.jquery概述
- 2.jquery选择器 基本选择器