如何让Firefox 忽略 Content-Disposition: attachment
标题?
我发现我无法在浏览器中查看图像,因为它要求我下载它。我觉得很烦人。
我不想下载文件,我只想在浏览器中查看它。如果浏览器没有处理它的插件,那么应该要求下载。
E.g。我安装了Adobe Acrobat Reader作为Firefox的插件。我单击指向PDF的链接,它会要求我保存它,当它应该使用插件在浏览器中打开时。如果服务器未在响应中发送Content-Disposition: attachment
标头,则会出现这种情况。
Firefox 3.6.6 Windows XP SP3
答案 0 :(得分:11)
This 是您正在寻找解决此问题的Firefox插件。
答案 1 :(得分:7)
"Open in browser" extension对于浏览器原生支持的格式很有用,不确定PDF。
答案 2 :(得分:0)
嗯,这就是处置类型“附件”的目的。
默认行为(当标题不存在时)应该是内联显示。
您的浏览器或Reader插件可能存在配置问题?
答案 3 :(得分:0)
您可以编写一个firefox扩展,删除PDF文件的处置标题。这将是一个相当简单的扩展。
答案 4 :(得分:0)
对于PDF,有一个名为PDF-Download的插件,它会覆盖任何下载PDF的尝试,并让用户决定他们希望如何下载(内联,保存,外部等)。您可以将其修改为适用于其他文件类型。
答案 5 :(得分:0)
我今晚也found this完全阻止Firefox通过下载乱丢你的桌面。它实际上是对MAC中hidden / private / temp文件夹的重定向修复。天才。
只需更改[Firefox]即可模仿Windows行为 将目录下载到
/tmp
。要执行此操作,请打开
Firefox's General preferences
窗格,在Save Downloaded Files To
下选择[选择] ....在出现的对话框中, 点击Shift-Command-G
以显示Go to Folder
对话框。在此对话框中,只需输入
/tmp
,点击OK
,然后点按Select
主窗口。
答案 6 :(得分:0)
由于我一直在寻找解决方案,并且没有可用的附加组件实际上与我的Firefox 31.0(Ubuntu)一起使用,我决定尝试创建自己的附加组件。
代码,如果您想归档类似目标或只是想知道它是如何工作的。
console.log("starting addon to disable content-disposition...");
//getting necessary objects
var {Cc, Ci} = require("chrome");
//creating the observer object which alters the Content-Disposition header to inline
var httpResponseObserver = {
//gets fired whenever a response is getting processed
observe: function(subject, topic, data) {
if (topic == "http-on-examine-response") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
httpChannel.setResponseHeader("Content-Disposition", "inline", false);
}
},
//needed for this.observerServer.addObserver --> without addObserver will fail
get observerService() {
return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
},
//used to register with an observer
register: function() {
console.log("register with an observer to get response-events");
this.observerService.addObserver(this, "http-on-examine-response", false);
},
//used to unregister from the observer
unregister: function() {
console.log("unregister from observer");
this.observerService.removeObserver(this, "http-on-examine-response");
}
};
//gets called at enable or install of the add-on
exports.main = function(options, callbacks) {
console.log("content-dispostion main method got invoked");
//call register to make httpResponseObserver.observe get fired whenever a response gets processed
httpResponseObserver.register();
};
//gets called on disable or uninstall
exports.onUnload = function(reason) {
console.log("content-dispostion unloaded");
//unregister from observer
httpResponseObserver.unregister();
};
/*
//not needed!!! just test code for altering http-request header
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
console.log("in observe...");
console.log("topic is: " + topic);
if (topic == "http-on-modify-request") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
httpChannel.setRequestHeader("X-Hello", "World", false);
}
},
get observerService() {
return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
},
register: function()
{
this.observerService.addObserver(this, "http-on-modify-request", false);
},
unregister: function()
{
this.observerService.removeObserver(this, "http-on-modify-request");
}
};
httpRequestObserver.register();
*/
作为替代方案,您可以让我的xpi-File直接在Firefox中安装附加组件。如果你想禁用" Content-Disposition"改变只是停用附加组件;-)。
http://www.file-upload.net/download-9374691/content-disposition_remover.xpi.html