2016-10-13 10 views
0

Wie kann ich feststellen, ob eine bestimmte URL eine Datei zum Herunterladen ist?Erkennen, ob eine URL ein Dateidownload ist

Ich stieß auf die content-disposition Header, aber es scheint, dass dies nicht ein Teil von http 1.1 direkt ist.

Gibt es eine Standardmethode, wenn die response für eine GET Anfrage zu einem bestimmten URL ist eigentlich eine Datei auf/kann heruntergeladen werden gemacht zu erkennen?

Das ist die Antwort ist nicht HTML oder JSON oder etwas ähnliches, aber so etwas wie ein Bild, MP3, PDF-Datei usw.?

+0

Woran denken Sie, dass Content-Disposition nicht "Teil" von HTTP ist? Siehe http://www.iana.org/assignments/message-headers/message-headers.xhtml –

+0

@JulianReschke https://www.ietf.org/rfc/rfc2616.txt, Abschnitt 5.5. – Thihara

+0

RFC 2616 wurde vor zwei Jahren veraltet. –

Antwort

0

Ich endete mit der content-type, um zu entscheiden, ob es eine HTML-Datei oder eine andere Art von Datei ist, die am anderen Ende einer bestimmten URL ist.

Ich benutze die content-disposition Header-Inhalt, um den ursprünglichen Dateinamen zu erkennen, wenn es existiert, da die Kopfzeile nicht überall verfügbar ist.

2

HTTP ist ein Übertragungsprotokoll - das ist eine ganz andere Sache zu Festplattenspeicherlayouts. Das Konzept von "Datei" existiert einfach nicht in HTTP. Nicht mehr als Ihre Computer-Festplatte enthält tatsächliche Papier-und-Karton "Dateien", die man in einem Office-Dateisystem sehen würde.

Was auch immer Sie denken, die HTTP-Nachricht oder die URL sagen, dass der Antwortinhalt nicht von irgendeiner Computerdatei kommen muss und nicht in einem vom Empfänger gespeichert werden muss.

Die Antwort auf jede GET-Nachricht in HTTP kann immer "heruntergeladen" werden, indem eine weitere GET-Anfrage mit derselben URL (und möglicherweise anderen Kopfzeilen im Fall von HTTP/1.1-Varianten) gesendet wird. Das ist in die Definition dessen integriert, was eine GET-Nachricht ist und hat nichts mit Dateien zu tun.

+0

Ich suchte nach einer Möglichkeit zu erkennen, was am anderen Ende einer bestimmten URL ist. Die freigegebenen Dateiverknüpfungen von Google Drive können beispielsweise nicht direkt heruntergeladen werden. Die Antwort ist HTML. Aber ich verstehe deinen Standpunkt. – Thihara

0

Konnte die Überprüfung auf eine Dateierweiterung eine Möglichkeit sein? Entschuldigung, ich kann nicht so viel vergrößern, ohne mehr zu wissen, aber ich denke, dass Sie PHP verwenden könnten, um dies zu implementieren, wenn HTML nicht genug Funktionalität hat?

+0

Leider ist es nicht so einfach :-). Manchmal gibt es keinen Dateinamen oder Erweiterungsinformationen in den Headern. – Thihara

Verwandte Themen