客户端将文件从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(); 

你需要处理适当的例外,当然。

+0

Thanx .. Ur代码将有助于我在后面的下载。 – sanket 2012-04-24 11:30:43

+0

你可以指定我上面的代码什么应该替换为文件名和my_file。我曾尝试用“http://169.254.174.150:8084/WebApplication1/files/encrypt.txt”和文件名encrypt.txt替换my_file,但它不起作用。此外,我没有得到文件的存储位置..请帮助。 thanx .. – sanket 2012-04-25 03:09:42

+0

如果您的文件在提到的示例位置。那么'request.getContextPath()/ files/encrypt.txt'就可以在Servlet中使用 – 2012-04-25 03:39:55