我正在编写Java服务器程序。目前,我使用DataOutputStream
将文件输出到请求客户端或浏览器。我希望将文件发送到客户端的特定目录而不仅仅是浏览器(我不想编写客户端程序来处理这个问题)。如何让服务器程序将文件写入客户端的特定目录?
提前致谢
答案 0 :(得分:3)
服务器对客户端一无所知,这也不是允许服务器在客户端目录上写文件或任何内容的好主意,因为它是一个Http安全问题并且它不会允许服务器在访问其网页的用户计算机上编写病毒,更改属性等。
所以,你可以做的是,客户端可以向服务器发送请求,服务器将在客户端(例如浏览器而不是目录)上写入文件,并发回一些mime类型。现在很少有mime类型,浏览器可以在浏览器中处理并向客户端显示。然后,客户可以根据他/她自己的选择下载或丢弃它到他/她的机器上的任何目录。
以下是您可以在服务器端编写的一些代码,以实现我上面所说的:
OutputStream out = response.getOutputStream();
File file = new File(path_to_a_file);
response.setContentType(file_content_type);
response.setHeader("Content-disposition","attachment; filename="+FILE_NAME);
FileInputStream inputStream = new FileInputStream(FILE);
//Read bytes and write until finished