Как игнорировать «Content-Disposition: attachment» в Firefox - PullRequest
21 голосов
/ 15 июля 2010

Как я могу заставить Firefox игнорировать заголовок Content-Disposition: attachment?Меня раздражает, что я не могу просмотреть изображение в браузере, потому что он просит меня загрузить его.

Я не хочу скачивать файл, я просто хочу просмотреть его в браузере,Если в браузере нет плагина для его обработки, , то он должен запросить загрузку.

Например, у меня установлен Adobe Acrobat Reader в качестве плагина для Firefox.Я нажимаю на ссылку в PDF, и она просит меня сохранить ее, когда она должна открыться в браузере с помощью плагина.Это происходит, если сервер не отправляет заголовок Content-Disposition: attachment в ответе.

Firefox 3.6.6 Windows XP SP3

Ответы [ 7 ]

11 голосов
/ 31 августа 2011

- это дополнение к Firefox, которое вы ищете для решения этой проблемы.

7 голосов
/ 12 сентября 2010

Расширение «Открыть в браузере» полезно для форматов, изначально поддерживаемых браузером, не уверен насчет PDF.

0 голосов
/ 14 августа 2014

Поскольку я искал решение, и на моем 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-файл для прямой установки дополнения в Firefox. Если вы хотите отключить «Content-Disposition», просто отключите надстройку ;-).

http://www.file -upload.net / скачать-9374691 / контент-disposition_remover.xpi.html

0 голосов
/ 24 сентября 2011

Я также нашел это сегодня вечером, которое полностью препятствует загрузке Firefox вашего рабочего стола.На самом деле это исправление перенаправления в скрытую / приватную / временную папку в MAC.Genius.

Вы можете имитировать поведение Windows, просто изменив каталог загрузки [Firefox] на /tmp.

Для этого откройте панель Firefox's General preferences, в разделе Save Downloaded Files To выберите [выберите] .... В появившемся диалоговом окне нажмите Shift-Command-G, чтобы открыть диалоговое окно Go to Folder.

В этом диалоговом окне просто введите /tmp, нажмите OK, затем нажмите Select в главном окне.

0 голосов
/ 08 сентября 2010

Для PDF-файлов существует дополнение под названием PDF-Download , которое отменяет любую попытку загрузки PDF-файла и позволяет пользователю решать, как он хочет его загрузить (встроенный, сохранить, внешний и т. Д.).Возможно, вы можете изменить его, чтобы он работал и для других типов файлов.

0 голосов
/ 08 сентября 2010

Вы можете написать расширение Firefox, которое удаляет заголовок расположения для файлов PDF. Это было бы довольно простое расширение.

0 голосов
/ 15 июля 2010

Ну, это и есть назначение типа «вложение».

Поведение по умолчанию (когда заголовок отсутствует) должно отображаться в строке.

Может быть, проблема в настройке вашего браузера или плагина Reader?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...