从AJAX PAGE下载文件时,该文件与下载它的ajax页面同名

时间:2013-02-28 07:30:20

标签: ajax java-ee

*您好,    我正在尝试编写一个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

让我知道我做错了什么以及如何获得相同的文件名。

1 个答案:

答案 0 :(得分:1)

由于您没有为下载指定文件名,浏览器会选择一个(基于当前URL)。您可以通过将HTTP标头Content-Disposition设置为:

来覆盖文件名

response.setHeader("Content-Disposition","attachment; filename=Data.txt")