当前位置: 首页 > 面试题库 >

如何使用JavaScript打开文件?

慕麒
2023-03-14
问题内容

我有一个将pdf文件作为ByteArrayOutputStream写入servlet的输出流的servlet。如果打开servlet
URL,浏览器将打开文件。但是,如果在Servlet上发生错误,浏览器会打开一个带有错误消息的空白pdf。通过ServletResponse发送错误,浏览器将打开默认错误页面。

我要发送错误消息,而不重定向到错误页面或打开无效的pdf文件。

我试过了:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            docWindow = window.open('','title');
            docWindow.document.open('application/pdf');
            docWindow.document.write(response);
            docWindow.document.close();
        },
        onFailure: function(response) {
            alert(response);
        }
    });

但是,onSuccess会打开一个带有[object object]的页面

如何使用JavaScript打开PDF文件?


问题答案:

注意:我假设您正在通过Ajax.Request调用使用Prototype框架。

该响应对象并不意味着要直接写入,但它确实,有responseText应包含返回PDF属性。

你有没有尝试过:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            docWindow = window.open('','title');
            docWindow.document.open('application/pdf');
            document.write(response.responseText);
            docWindow.document.close();
        },
        onFailure: function(response) {
            alert(response);
        }
    });

(注意已添加.responseText

编辑: 好的,所以那行不通…尝试这样的事情:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            window.open('/pdfservlet');
        },
        onFailure: function(response) {
            alert(response);
        }
    });

这将创建ajax请求,如果成功,则在新窗口中打开它。打开新窗口应该很快,并且实际上不需要再次请求PDF,因为浏览器应该在Ajax.Request调用期间将其缓存了。



 类似资料:
  • 问题内容: 我正在尝试使用javascript从JSON文件中提取元素,但是却收到一条错误消息,提示它无法加载JSON文件。 这是我的代码如下所示: 这是控制台吐出的错误: 问题答案: d3.json用于通过HTTP加载数据。正如@Quentin所说,您可以设置一个本地服务器来通过HTTP提供数据。 对于这样的开发,我使用firefox,它在处理本地跨源请求时似乎比chrome更宽容。或者,您可以

  • 问题内容: 我想打开文件以使用argparse进行读取。在cmd中,它必须类似于:my_program.py / filepath 那是我的尝试: 问题答案: 参数的类型应为字符串(无论如何都是默认值)。因此,使它像这样:

  • 我试图在javascript中打开一个json文件, 这不起作用,无法登录。json是一种东西,这就是它的本质: 任何帮助都很好,我需要使用Ajax吗?还是这是一个愚蠢的错误?我是javascript新手。

  • 问题内容: 我尝试通过Java程序从本地(在我的系统中)打开HTML文件。我尝试了一些通过堆栈溢出获得的程序,但是它不能正常工作。 对于EG: 我有这个小的HTML文件。 我的Java代码: 任何解决方案或技巧表示赞赏。 问题答案: 我希望使用默认浏览器

  • 问题内容: 我是JavaScript新手。我找到了一个使用上的javascript打开本地文件的示例。进行一些谷歌搜索之后,我可以将Chrome设置为允许读取本地文件,然后可以运行该示例。但是,我想返回该字符串并在以后的脚本中使用它。但是绳子变成外面了。 还有一个类似的问题在这里。似乎与的异步功能有关。目前,我几乎无法理解这些术语。我只是不明白为什么在本文中将的第三个参数设置为。 无论如何,下面是

  • 问题内容: 我正在研究如何在Python中进行文件输入和输出。我编写了以下代码,以将文件列表中的名称列表(每行一个)读入另一个文件,同时对照文件中的名称检查名称并将文本附加到文件中的出现位置。该代码有效。可以做得更好吗? 我想对输入和输出文件都使用该语句,但看不到它们如何位于同一块中,这意味着我需要将名称存储在一个临时位置。 问题答案: Python允许将多个语句放在一个语句中。您用逗号分隔。您的