为什么<iframe>中的.txt文件被下载而不是显示?

时间:2015-06-16 07:03:20

标签: html firefox iframe download struts2

我使用&lt; iframe&gt; 来显示文本文件:

&#xA;&#xA;
 &lt; div class =“document-视图“&GT;&#XA; &lt; img src =“img / 302.GIF”/&gt;&#xA;&lt; / div&gt; &#xA;&#xA; $(window).load(function(){&#xA;&lt; s:if test =“extention.equalsIgnoreCase('txt')”&gt;&#xA; element ='&lt; ; iframe class =“iframe”src =“/ dmsrepo /&lt; s:property value =”docLocation“/&gt;”/&gt;';&#xA;&lt; / s:if&gt;&#xA;&#xA ; $('。document-view')。html(element);&#xA;});&#xA;  
&#xA;&#xA;

当我检查元素时在浏览器中,我可以看到文件位置。

&#xA;&#xA;
 &lt; iframe class =“iframe”src =“/ dmsrepo / Legal Doc Type / LegalDocType_123456789_1.0。 txt“/&gt;&#xA;  
&#xA;&#xA;

但该文本文件已在Chrome,Firefox和IE中下载。

&#xA;&#xA;

如何解决此问题?

&#xA;&#xA;
&#xA;&#xA;

编辑:你可以在下面的小提琴中重现这种行为,这只会对第一个页面加载后的每个页面加载产生奇怪的影响。

&#xA;&#xA;
&#xA;

只需打开页面,然后按运行

& #xA;
&#xA;&#xA;

注意:如果激活Firebug Net模块,它也会影响第一次加载。

&#xA;

3 个答案:

答案 0 :(得分:4)

因为浏览器只能理解html。将您的文件扩展名更改为.html
或者使用像php这样的服务器端语言并使用file_get_contents()函数,可以将文本文件显示给浏览器。

答案 1 :(得分:4)

这是文件的问题。它没有格式化为html。因为它在文件读取结束时有一些特殊的unicode(例如)字符。如果文本响应具有这样的特殊字符。它无法解析作为嵌入在iframe中的html的响应。

您可以查看此示例:

<iframe src='http://humanstxt.org/humans.txt' /> </iframe> 

答案 2 :(得分:0)

在.htaccess

中显示文件添加到行下方
AddType text/plain .txt
AddType text/plain .log

这是Firefox的信号,您无需下载文件而是以纯文本格式查看文件。此技术可应用于您需要查看的所有文件,而不是下载。