使浏览器在特定位置保存文件

时间:2014-08-21 10:52:53

标签: java

好的,我有一个代码将文件作为字节流发送到响应。浏览器下载文件并保存在默认的下载文件夹中。现在我需要通过我的代码更改该位置。我该怎么做?想法???????

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();
}    

3 个答案:

答案 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,在运行时将有效负载存储在相应的目录中。 应用程序将保存到临时目录中,用户可能会选择执行它。吓人。