客户端将文件从Web服务器传输到另一台机器
问题描述:
有一个Tomcat Web服务器,比如WS1,我拥有所有的servlet和HTML页面。 WS1的客户端上传WS1上的文件。然后该文件被读取,加密并存储在WS1中的其他文件夹中。客户端将文件从Web服务器传输到另一台机器
我要做的是在一些其他机器上发送/传输这个加密文件,比如机器A.假设客户机搜索他存储的文件,该文件应该从机器A下载到WS1。WS1将执行解密和解密文件应在客户端发送。
我已经完成了加密部分,但卡住了文件传输。我怎样才能做到这一点?
答
这里a。 “文件应该从机器A下载到WS1”或它应该是b。“文件应该从网络服务器下载到机器A”。
这实际上与您的问题标题和问题主体相矛盾。
如果“b”是你想要的(可能它应该是),然后,你需要编写代码从Web服务器WS1下载文件。
这里是使用Servlet下载文件的摘录。
String value = "attachment;filename=\"" + URLEncoder.encode(filename, "UTF-8") +'"';
response.setHeader("Content-Disposition", value);
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(my_file);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
// logic to decrypt the file
out.write(buffer, 0, length);
}
in.close();
out.flush();
你需要处理适当的例外,当然。
Thanx .. Ur代码将有助于我在后面的下载。 – sanket 2012-04-24 11:30:43
你可以指定我上面的代码什么应该替换为文件名和my_file。我曾尝试用“http://169.254.174.150:8084/WebApplication1/files/encrypt.txt”和文件名encrypt.txt替换my_file,但它不起作用。此外,我没有得到文件的存储位置..请帮助。 thanx .. – sanket 2012-04-25 03:09:42
如果您的文件在提到的示例位置。那么'request.getContextPath()/ files/encrypt.txt'就可以在Servlet中使用 – 2012-04-25 03:39:55