2010-07-15 10 views
17

Come posso causare Firefox a ignorare l'intestazione Content-Disposition: attachment? Trovo assolutamente fastidioso che non riesca a visualizzare un'immagine nel browser, perché mi chiede di scaricarlo.Come ignorare "Content-Disposition: attachment" in Firefox

Non voglio scaricare il file, voglio solo vederlo nel browser. Se il browser non ha un plugin per gestirlo, quindi dovrebbe chiedere di scaricare.

E.g. Ho installato Adobe Acrobat Reader come plugin per Firefox. Faccio clic su un collegamento a un PDF e mi chiede di salvarlo, quando dovrebbe aprirlo nel browser utilizzando il plug-in. Questo è il comportamento se il server non invia l'intestazione Content-Disposition: attachment nella risposta.

Firefox 3.6.6 Windows XP SP3

+0

Cosa c'è di così sbagliato con la selezione "Apri con: Acrobat Reader" e ottenere una finestra di Acrobat Reader? Questo salverà il file solo nella directory temporanea, come se lo avessi aperto nel browser. – Borealid

+2

Semplicemente, usa troppe finestre. Vedi sotto. – mctom987

+0

@Borealid Ricordo pdfplugin utilizzato per visualizzare il file mentre viene scaricato (senza doverlo recuperare tutto/scaricarlo prima di visualizzarlo). – aularon

risposta

6

Il "Open in browser" extension è utile per i formati supportati in modo nativo dal browser, non è sicuro del PDF.

+0

Ho già trovato questa estensione prima di rispondere, ma è quello che ho finalmente fatto. – LatinSuD

0

Beh, questo è lo scopo di tipo disposizione "attaccamento".

Il comportamento predefinito (quando l'intestazione è assente) deve essere visualizzato in linea.

Forse c'è un problema di configurazione nel browser o nel plugin Reader?

+1

Nah, le immagini sono gestite direttamente da Firefox; senza un plugin. Quello che sto dicendo è che non voglio scaricarlo, voglio solo vederlo. Il motivo principale per questo è impedire l'apertura di finestre in eccesso. Normalmente, faccio clic su un collegamento, vedo il file. Ma in alcuni casi (come scaricare questa immagine) apri una nuova finestra "Il download inizierà tra poco" che apre una finestra di dialogo di Firefox (Sì, so che posso saltare questo) quindi scelgo "Apri con", il download dei file, poi il il programma si apre Conta questi. Ecco 5 finestre per quello che negli altri casi è 1. – mctom987

+0

Ancora: controlla che il tuo lettore sia configurato correttamente (prova un'altra macchina?). Controlla la traccia HTTP (l'intestazione è realmente presente). In modo ottimale, fornire un caso di test che dimostri il problema. –

+14

Il * sito * sta aggiungendo l'intestazione per dire * che * vuole scaricarlo. È perfettamente ragionevole volere che il browser ti consenta di ignorarlo (proprio come fa per migliaia di altre azioni: aprire in una nuova scheda, bloccare javascript, ecc. Ecc.). – Draemon

0

Vai a Strumenti> Opzioni> Applicazioni e modificare l'opzione a discesa Chiedi sempre associato con un certo tipo di contenuto per l'applicazione predefinita per il vostro gusto.

+2

Ma lui vuole che si apra direttamente nel browser, non un'applicazione esterna. – Draemon

0

È possibile scrivere un'estensione firefox che rimuove l'intestazione di disposizione per i file PDF. Questa sarebbe un'estensione abbastanza semplice.

0

Per i PDF è presente un componente chiamato PDF-Download che ignora qualsiasi tentativo di scaricare un PDF e consente all'utente di decidere come lo desidera scaricare (in linea, salvataggio, esterno, ecc.). Probabilmente potresti modificarlo per funzionare anche per altri tipi di file.

9

This è l'addon di Firefox che stai cercando per risolvere questo problema.

+2

Questa è la soluzione per evitare quei popup che ti chiedono di salvare o aprire il file, con la casella "non chiedi questa domanda" spuntata (anche se ti sta chiedendo la domanda che afferma di non chiedere.) Funziona con modificando l'intestazione Content-Disposition in modo da ottenere il comportamento desiderato dal browser, ovvero rispettando la scelta che si desidera che venga eseguita un'azione particolare senza che venga richiesto. – Malvineous

0

Ho anche found this stasera che impedisce totalmente a Firefox di sporcare il desktop con i download. In realtà è una correzione di reindirizzamento alla cartella hidden/private/temp in MAC. Genio.

È possibile simulare il comportamento di Windows semplicemente cambiando directory scaricare [di Firefox] per /tmp.

A tale scopo, aprire riquadro Firefox's General preferences, sotto Save Downloaded Files To selezionare [scegliere] .... Nella finestra di dialogo che appare, colpito Shift-Command-G per aprire la finestra di dialogo Go to Folder.

In questa finestra di dialogo, è sufficiente digitare /tmp, ha colpito OK, poi ha colpito Select nella finestra principale .

0

Poiché stavo cercando una soluzione e nessun componente aggiuntivo disponibile funzionava effettivamente con il mio Firefox 31.0 (Ubuntu), ho deciso di provare a creare il mio add-on.

Il codice se si desidera archiviare un obiettivo simile o semplicemente si desidera sapere come funziona.

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(); 
*/ 

In alternativa è possibile ottenere il mio xpi-File per installare direttamente il componente aggiuntivo in Firefox. Se vuoi disabilitare la modifica "Content-Disposition", basta disattivare l'add-on ;-).

http://www.file-upload.net/download-9374691/content-disposition_remover.xpi.html

Problemi correlati