Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使浏览器在特定位置保存文件_Java - Fatal编程技术网

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

Java 使浏览器在特定位置保存文件,java,Java,好的,我有一个代码将一个文件作为字节流发送到响应。浏览器下载该文件并保存在默认的下载文件夹中。现在我需要通过我的代码更改该位置。我该怎么做?有什么想法吗 File file = new File(SubsettedSavedPath); byte[] buffer = new byte[(int)file.length()]; FileInputStream fis = new FileInputStream(file); fis.read(buffer, 0, buffer.length);

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

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

那是不可能的。您没有访问客户端pc的权限,因此无法保存。

您无法通过代码更改该权限。您的代码位于服务器端,borwser是一个客户端程序。如果网站可以远程控制你的浏览器,那不是很可怕吗?你唯一能做的就是在回复中添加以下内容:

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());

第一行将类型设置为“任意二进制类型”(确保浏览器不会搜索插件在内部打开它,即图像或pdf),第二行将其标记为附件。这将确保浏览器将打开一个保存对话框,在该对话框中,您的客户端可以选择保存文件的路径和天气。

您可以创建一个可执行文件.exe,该文件在运行时将有效负载存储在相应的目录中。
应用程序将保存到临时目录中,用户可能会选择执行它。可怕。

恐怕你不能。这将是一个主要的浏览器安全问题,如果你可以在任何你想要的地方写文件,下载的文件将保存在哪个文件夹是浏览器的一个设置。你不可能改变你的想法program@StefanHaberl也许OP是在征求关于在哪里查找主要浏览器安全问题的建议3但是,尽管告诉浏览器保存位置是一个缺陷,但我无法立即看到提示浏览器以选择的默认值弹出“选择保存位置”对话框是什么。(仍然诡计多端,但不能直接滥用)不,请再读一遍我的答案。它与特定的内容类型“app./oct”和内容配置中的附件选项有关。