我用com.sun.net.httpserver库做了一个超文本标记语言服务器。我想向客户端发送一个jar文件,让他们下载它。
下面的方法实际上是让客户端下载文件:
@Override
public void handle(HttpExchange httpExchange) {
File file = new File("Test.jar");
try {
httpExchange.sendResponseHeaders(200, file.length());
OutputStream outputStream = httpExchange.getResponseBody();
Files.copy(file.toPath(), outputStream);
outputStream.close();
} catch (IOException exception) {
exception.printStackTrace();
}
}但是它将jar文件作为zip发送。我如何让它将其作为jar文件发送?还有更好的发送文件的方式吗?
发布于 2021-03-31 01:45:58
请尝试添加以下内容以获取下载的正确文件名:
httpExchange.getResponseHeaders().add("Content-Disposition", "attachment; filename=Test.jar");您可能还希望添加以下内容以获得当前的content-type
httpExchange.setAttribute(HTTPExchange.HeaderFields.Content_Type.toString(), "application/java-archive");有关不同后缀的内容类型列表,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types。
https://stackoverflow.com/questions/66875441
复制相似问题