好的,我有一个代码将文件作为字节流发送到响应。浏览器下载文件并保存在默认的下载文件夹中。现在我需要通过我的代码更改该位置。我该怎么做?想法???????
File file = new File(SubsettedSavedPath);
byte[] buffer = new byte[(int)file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(buffer, 0, buffer.length);
response.setContentType("font/ttf");
response.setHeader("Content-Disposition", "filename=\"Subsetter\"");
response.setContentLength((int) file.length());
OutputStream os = response.getOutputStream();
try {
os.write(buffer);
response.addHeader("19.write","Completed");
os.flush();
} catch (Exception excp) {
response.addHeader("exception", excp.getMessage());
excp.printStackTrace();
} finally {
os.close();
fis.close();
}
答案 0 :(得分:0)
那是不可能的。您无法访问客户端的PC,也无法保存。
答案 1 :(得分:0)
您无法通过代码更改内容。您的代码在服务器端,borwser是客户端程序。如果网站可以远程控制您的浏览器,那会不会很可怕?您唯一能做的就是将此添加到您的回复中:
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
第一行将类型设置为" any-binary-type" (确保浏览器不会搜索内部打开它的插件,即图像或pdf),第二个将标记为附件。这将确保浏览器将打开一个保存对话框,您的客户端可以在其中选择路径,以及是否天气保存文件。
答案 2 :(得分:0)
您可以创建一个可执行文件.exe,在运行时将有效负载存储在相应的目录中。 应用程序将保存到临时目录中,用户可能会选择执行它。吓人。