Ist es OK, die Quelle mit dem Header "Content-Disposition: attachment" als src-Wert für img zu verwenden?

9

Es gibt eine 3D-Party-API mit einem Endpunkt http://endpoint/image_id , die eine Antwort mit solchen Headern zurückgibt:

%Vor%

Laut MDN-Dokumentation ,

  

In einer normalen HTTP-Antwort lautet der Header der Antwort Content-Disposition   eine Kopfzeile, die angibt, ob der Inhalt voraussichtlich inline angezeigt wird   im Browser, das heißt als Webseite oder als Teil einer Webseite oder als   ein Anhang , der lokal heruntergeladen und gespeichert wird.

Aber ich muss es so benutzen:

%Vor%

In Chrome funktioniert es OK für mich, ich habe das Bild gezeigt. Aber ich habe Zweifel daran. Ist es in Ordnung?

    
Mikhail Batcer 12.01.2017, 15:32
quelle

2 Antworten

1

Es funktioniert, weil Chrome so intelligent ist, dass Sie es innerhalb einer Webseite verwenden und es nicht den Dialog "Speichern unter" anzeigt, aber warum riskieren Sie mit

%Vor%

sollten Sie stattdessen verwenden:

%Vor%

Auch hier gab es eine Frage zum Stapelüberlauf, die ähnliche Antworten auf Ihre Frage hatte, die den Unterschied zwischen der Verwendung von attachement anstelle von inline erklären. Sehen Sie sich die genehmigte Antwort auf diese Frage.

    
Fady Sadek 15.01.2017 01:05
quelle
-1

Wenn es OK ist oder nicht, ist nicht so einfach.
Dies liegt daran, dass dies zwei unterschiedliche Standards beinhaltet. Die HTML-Spezifikation und die HTTP-Protokollspezifikation. Es hat also ein paar Grautöne. Es hängt davon ab, wie der Benutzeragent entscheidet, die Antwort zu übernehmen.

Gemäß dem http-Standard gibt der Antwort-Header an, dass die Datei als Anhang behandelt werden soll.

Howewer hier: Ссылка

Sagt auch: "Wenn dieser Header in einer Antwort mit dem Dispositionstyp" attachment " application / octet-stream content-type verwendet wird, ist der implizierte Vorschlag, dass der User-Agent dies tun sollte die Antwort nicht anzeigen, sondern direkt den Dialog "Antwort speichern unter ..." eingeben. "

UPDATE : RFC 6266 , bemerkt, dass die Einschränkung über den Content-Type wird application / octet-stream nicht mehr benötigt

Ihr Inhaltstyp überlässt diese Entscheidung technisch dem Benutzeragenten (in diesem Fall chrome), um den Inhalt anzuzeigen oder nicht.

Wir erreichen gerade jetzt eine Art Balance zwischen den Browsern, also würde ich heute empfehlen, einen Cross-Browser zu testen, um eine Weisheit zu wählen.

Idealerweise wird dies in Ihrem CI-Workflow mit einigen Tools wie Souce-Labs oder Ihrer benutzerdefinierten Lösung geschehen.

Eine andere schnelle Möglichkeit besteht darin, dieses einfache HTML-Beispiel wie ein kostenloses Github-Repo auf einen Host hochzuladen und in der RAW-Datei von einer Seite wie dieser zu navigieren: Ссылка

Damit können Sie mit verschiedenen Betriebssystemen und Browsern eine bestimmte URL aufrufen.

    
nico 21.01.2017 19:41
quelle