的 的 *您好, 我正在尝试编写一个Ajax页面,它解密服务器上的加密文件并下载它。现在我的代码解密并下载文件。但问题是下载的文件与Ajax页面的名称相同。 下面是将文件下载到本地计算机的代码。我没有包含解密代码以避免混淆。 *
String fileName =“/ home / maclean / NetBeansProjects / SecureCloud / build / web / SecureCloud /”+ Data.txt;
此行声明服务器上的文件位置
response.setContentType("APPLICATION/DOWNLOAD");
response.setContentLength(in.available());
int length;
byte[] buffer = new byte[4096];
while ((length = in.read(buffer)) > 0){
data=new String(buffer);
buffer =decryptCaesar.Decrypt(data,shiftKey).getBytes();
os.write(buffer, 0, buffer.length);
System.out.println(buffer);
}
response.setHeader("Content-Disposition","attachment; filename="+FileName);
此行下载该文件。但是下载的文件名为AjaxRead.jsp,它是Ajax页面的名称,其中文件的原始名称是Data.txt
让我知道我做错了什么以及如何获得相同的文件名。
答案 0 :(得分:1)
由于您没有为下载指定文件名,浏览器会选择一个(基于当前URL)。您可以通过将HTTP标头Content-Disposition
设置为:
response.setHeader("Content-Disposition","attachment; filename=Data.txt")
。