Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Jan 24, 2019. It is now read-only.

Commit 77edfee

Browse filesBrowse files
committed
new method for reponse file
1 parent bab057f commit 77edfee
Copy full SHA for 77edfee

1 file changed

+34Lines changed: 34 additions & 0 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎src/main/java/com/zhazhapan/util/NetUtils.java‎

Copy file name to clipboardExpand all lines: src/main/java/com/zhazhapan/util/NetUtils.java
+34Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.jsoup.Jsoup;
2020
import org.w3c.dom.Document;
2121

22+
import javax.servlet.ServletOutputStream;
2223
import javax.servlet.http.Cookie;
2324
import javax.servlet.http.HttpServletRequest;
2425
import javax.servlet.http.HttpServletResponse;
@@ -27,9 +28,11 @@
2728
import javax.xml.xpath.XPathExpressionException;
2829
import javax.xml.xpath.XPathFactory;
2930
import java.io.File;
31+
import java.io.FileInputStream;
3032
import java.io.IOException;
3133
import java.io.InputStream;
3234
import java.net.*;
35+
import java.nio.charset.StandardCharsets;
3336
import java.util.HashMap;
3437
import java.util.Map;
3538

@@ -62,6 +65,37 @@ public class NetUtils {
6265

6366
private NetUtils() {}
6467

68+
/**
69+
* 响应文件
70+
*
71+
* @param response {@link HttpServletResponse}
72+
* @param local 文件路径
73+
* @param isDownloaded 是否下载
74+
*
75+
* @throws IOException 异常
76+
* @since 1.1.1
77+
*/
78+
public static void responseFile(HttpServletResponse response, String local, boolean isDownloaded) throws IOException {
79+
if (Checker.isExists(local)) {
80+
File file = new File(local);
81+
try (FileInputStream in = new FileInputStream(file); ServletOutputStream os = response.getOutputStream()) {
82+
byte[] b;
83+
while (in.available() > 0) {
84+
b = in.available() > 1024 ? new byte[1024] : new byte[in.available()];
85+
in.read(b, 0, b.length);
86+
os.write(b, 0, b.length);
87+
}
88+
os.flush();
89+
}
90+
if (isDownloaded) {
91+
String fn = new String(file.getName().getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
92+
response.setHeader("Content-Disposition", "attachment;filename=" + fn);
93+
}
94+
} else {
95+
response.setStatus(404);
96+
}
97+
}
98+
6599
/**
66100
* 获取服务端错误消息
67101
*

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.