Content Disposition Attachment Binär Optionen
Letzte Aktualisierung: 12 Feb 2013 Content-Disposition Header - Erzwingen von SaveAs in Browsern Es gibt Situationen (um eine Dokumentation im pdf-Format oder ein Finanzdokument zu speichern), wo ein Hyperlink zu einer Datei zum Speichern eines SaveAs-Dialogs im Browser führen könnte. Möglichkeiten, das zu tun. Allerdings macht flockige Browser-Unterstützung seinen Einsatz zu einem Spaziergang im Minenfeld. Erzwingen von SaveAs mit Javascript in Internet Explorer Mit Javascript können Sie einen Dialog zum Speichern der aktuell angezeigten Seite bereitstellen (wenn der Benutzer den Internet Explorer auf Ihrer Seite durchsucht). Dies geschieht durch den folgenden Code: Save this pagelta Allerdings möchten Sie in der Regel eine andere Datei speichern, die Datei ein Hyperlink führt zu. Um zu tun, dass Javascript ist nicht genug (zumindest gibt es keine solche Standard-Weg) und etwas muss auf dem Server getan werden. Fortsetzen von SaveAs mit dem HTTP-Header Um den Browser zu zwingen, den SaveAs-Dialog zu zeigen, wenn du auf einen Hyperlink klickst, musst du den folgenden Header in die HTTP-Antwort der herunterzuladenden Datei aufnehmen: Content-Disposition: attachment filenameltfile name. extgt Wo ltfile name. Extgt ist der Dateiname, den du im SaveAs-Dialog erscheinen möchtest (wie finances. xls oder mortgage. pdf) - ohne lt und gt Symbole. Sie müssen folgendes beachten: Der Dateiname sollte in US-ASCII-Zeichensatz sein und sollte keine Sonderzeichen enthalten: lt gt. . Platz. Der Dateiname sollte keine Verzeichnispfadinformationen angegeben haben. Der Dateiname sollte in doppelte Anführungszeichen eingeschlossen werden, aber die meisten Browser unterstützen Dateinamen ohne doppelte Anführungszeichen. Alte Browser brauchten auch die folgenden (nicht erforderlich heutzutage, aber für eine narrensichere Lösung lohnt sich vielleicht): Content-Type Header sollte vor Content-Disposition sein. Content-Type-Header sollte sich auf einen unbekannten MIME-Typ beziehen (zumindest bis die älteren Browser weggehen). Detaillierte Verwendung Howto Content-Disposition Unterstützung in Internet Explorer Es scheint, dass Internet Explorer die schlechteste Track Record der Content-Disposition Header-Unterstützung hat. Das Feature hatte viele Sicherheitslücken und als Ergebnis Microsoft veränderte den Code viele Male manchmal brechen sie ganz. Praxis hat gezeigt, dass Download-Code einen anderen HTTP-Header-Parser verwendet. Und wenn dieser Parser bei der Handhabung aller Kopfzeilen nicht erfolgreich ist, wird IE überhaupt keine Datei herunterladen. Internet Explorer 9.0 Abhängig von der Version von WinInet. dll kann die Datei nicht mit Dateinamen mit den folgenden Sonderzeichen heruntergeladen werden: lt gt. . Platz. Microsoft Knowledgebase Artikel: 949197Erstellen Sie einen Anhang Content-Disposition Header Wert mit dem angegebenen Dateinamen, falls vorhanden. Der Dateiname ist optional und wenn kein Dateiname gewünscht wird, aber Sie möchten Optionen angeben. Den Dateinamen auf undefined setzen. Anmerkung HTTP-Header sind vom ISO-8859-1-Zeichensatz. Wenn du diesen Header durch ein anderses als setHeader in Node. js schreibst, kannst du die Binärcodierung in Node. js. ContentDisposition akzeptiert diese Eigenschaften im Optionsobjekt. Wenn die Dateiname-Option außerhalb von ISO-8859-1 liegt, wird der Dateiname tatsächlich in einem ergänzenden Feld für Clients gespeichert, die Unicode-Dateinamen unterstützen und eine ISO-8859-1-Version des Dateinamens automatisch generiert wird. Hiermit wird der ISO-8859-1-Dateiname angegeben, um die automatische Generierung zu überschreiben oder die Generierung alle zusammen zu deaktivieren. Ein String spezifiziert den ISO-8859-1-Dateinamen, der anstelle der automatischen Generierung verwendet werden soll. False deaktiviert einen ISO-8859-1-Dateinamen und enthält nur die Unicode-Version (es sei denn, der Dateiname ist bereits ISO-8859-1). True ermöglicht die automatische Generierung, wenn der Dateiname außerhalb von ISO-8859-1 liegt. Wenn die Dateiname-Option ISO-8859-1 ist und diese Option angegeben ist und einen anderen Wert hat, wird die Dateiname-Option im erweiterten Feld codiert und diese als Fallback-Feld gesetzt, obwohl sie beide ISO-8859-1 sind. Gibt den Dispositionstyp an, wird standardmäßig angehängt. Dies kann auch inline sein. Oder alle anderen Werte (alle Werte außer Inline werden wie Attachment behandelt, können aber zusätzliche Informationen übermitteln, wenn beide Parteien damit einverstanden sind). Der Typ wird auf Kleinbuchstaben normiert. Analysieren Sie einen Content-Disposition-String. Dies verarbeitet automatisch erweiterte (Unicode) Parameter, indem sie sie decodiert und sie unter dem Standardparameternamen versorgt. Dadurch wird ein Objekt mit den folgenden Eigenschaften zurückgegeben (Beispiele werden für den String Anhang DateinameEURO rates. txt DateinameUTF-8e282ac20rates. txt angezeigt): type. Die Dispositionstyp (immer Kleinbuchstaben). Beispiel: anhangparameter Ein Objekt der Parameter in der Disposition (Name des Parameters immer Kleinbuchstaben und erweiterte Versionen ersetzen nicht erweiterte Versionen). Beispiel: Senden einer Datei für downloadDescription void header (string string, bool replace true, int httpresponsecode) header () wird verwendet, um einen rohen HTTP-Header zu senden. Weitere Informationen zu HTTP-Headern finden Sie in der Spezifikation des Bedrohungs-HTTP1.1. Denken Sie daran, dass Header () aufgerufen werden muss, bevor eine aktuelle Ausgabe gesendet wird, entweder durch normale HTML-Tags, leere Zeilen in einer Datei oder von PHP. Es ist ein sehr häufiger Fehler, Code mit include zu lesen. Oder erfordern Funktionen oder eine andere Dateizugriffsfunktion und haben Leerzeichen oder Leerzeilen, die ausgegeben werden, bevor header () aufgerufen wird. Das gleiche Problem besteht bei der Verwendung einer einzigen PHPHTML-Datei. Lthtmlgt ltphp Dies wird einen Fehler geben. Beachten Sie die Ausgabe oben, die vor dem Header () Anruf Header (Ort: Beispiel) exit gt Parameter Die Header-String ist. Es gibt zwei Special-Case-Header-Anrufe. Der erste ist ein Header, der mit dem String beginnt. HTTP quot (Fall ist nicht signifikant), der verwendet wird, um herauszufinden, den HTTP-Status-Code zu senden. Wenn Sie zum Beispiel Apache konfiguriert haben, um ein PHP-Skript zu verwenden, um Anfragen für fehlende Dateien zu behandeln (mit der ErrorDocument-Direktive), können Sie sicherstellen, dass Ihr Skript den richtigen Statuscode erzeugt. Ltphp header (HTTP1.0 404 nicht gefunden) gt Der zweite Sonderfall ist der quotLocation: header. Nicht nur, dass es diesen Header an den Browser zurücksendet, sondern auch einen REDIRECT (302) Statuscode an den Browser zurückgibt, es sei denn, der 201 oder ein 3xx Statuscode wurde bereits gesetzt. Ltphp-Header (Ort: Beispiel) Umleiten des Browsers Vergewissern Sie sich, dass der untenstehende Code bei der Umleitung nicht ausgeführt wird. Exit gt Der optionale Ersetzungsparameter gibt an, ob der Header einen vorherigen ähnlichen Header ersetzen oder einen zweiten Header desselben Typs hinzufügen soll. Standardmäßig wird es ersetzt, aber wenn du FALSE als zweites Argument passierst, kannst du mehrere Header des gleichen Typs erzwingen. Zum Beispiel: ltphp-Header (WWW-Authenticate: Negotiate) header (WWW-Authenticate: NTLM. False) gt Erzwingt den HTTP-Antwortcode auf den angegebenen Wert. Beachten Sie, dass dieser Parameter nur dann wirksam ist, wenn der String nicht leer ist. Es ist wichtig zu beachten, dass Header tatsächlich gesendet werden, wenn das erste Byte an den Browser ausgegeben wird. Wenn Sie Header in Ihren Skripten ersetzen, bedeutet dies, dass die Platzierung von echoprint-Anweisungen und Ausgabepuffern tatsächlich Auswirkungen auf die Header haben kann. Im Falle von Umleitungen, wenn Sie vergessen, Ihr Skript nach dem Senden des Headers zu beenden, kann das Hinzufügen eines Puffers oder das Senden eines Zeichens ändern, auf welche Seite Ihre Benutzer gesendet werden. Dies leitet zu 2.html um, da der zweite Header den ersten ersetzt. Ltphp header (location: 1.html) header (location: 2.html) ersetzt 1.html gt Dies leitet zu 1.html weiter, da der Header gesendet wird, sobald das Echo passiert. Sie sehen auch keine Header bereits Fehler, weil der Browser folgt der Umleitung, bevor es den Fehler anzeigen kann. Ltphp header (location: 1.html) echo send data header (location: 2.html) 1.html bereits gesendet gt Wrapping das vorherige Beispiel in einem Ausgangspuffer ändert tatsächlich das Verhalten des Skripts Dies ist, weil Header arent gesendet, bis die Ausgabe Puffer wird gespült Ltphp obstart () header (location: 1.html) echo send data header (location: 2.html) ersetzt 1.html obendflush () jetzt werden die header gesendet gt Meine Dateien sind in einem komprimierten Zustand (bz2). Wenn der Benutzer auf den Link klickt, möchte ich, dass sie die unkomprimierte Version der Datei bekommen. Nach dem Dekomprimieren der Datei lief ich in das Problem, dass der Download-Dialog immer auftauchen würde, auch wenn ich dem Dialog mitgeteilt habe, dass ich diesen Vorgang immer mit diesem Dateityp durchführen soll. Wie ich herausgefunden habe, war das Problem in der Kopfrichtlinie Content-Disposition, nämlich der Attachment-Richtlinie. Wenn Sie möchten, dass Ihr Browser eine einfache Verknüpfung zu einer Datei simuliert, ändern Sie die Anhänge in Inline oder lassen Sie sie ganz aus und gehen Sie gut aus. Das hat mir eine Weile gedauert, um herauszufinden, und ich hoffe es wird jemandem da draußen helfen, der in das gleiche Problem läuft. Sichern von PHP-Dateien in ANSI keine Lust, aber beim Speichern der Datei im UTF-8-Format aus verschiedenen Gründen erinnern, um die Datei ohne jede BOM (Byte-Order-Marke) zu speichern. Andernfalls wirst du das Problem der Header sehen, die nicht richtig gesendet werden. Ltphp header (Set-Cookie: nameuser) gt Würde so etwas wie folgt geben: - Warnung: Header-Informationen können nicht geändert werden - Header, die bereits gesendet wurden (Ausgabe gestartet bei C: wwwinfo. php: 1) in C: wwwinfo. php on line 1 Entsprechend Auf die RFC 6226 (tools. ietf. orghtmlrfc6266), die einzige Möglichkeit, Content-Disposition Header mit Codierung zu senden ist: Content-Disposition: Anhang Dateiname UTF-8e282ac20rates für Abwärtskompatibilität, was gesendet werden soll: Content-Disposition: attachment DateinameEURO Rate filenameutf-8e282ac20rates Als Ergebnis sollten wir ltphp Dateiname verwenden. exe ein Dateiname in chinesischen Zeichen contentDispositionField Content-Disposition: attachment. Sprintf (Dateinamen; rawurlencode (Dateiname)). Sprintf (filenameutf-8s. Rawurlencode (filename)) header (Content-Type: applicationoctet-stream) readfile (filetodownload. exe) gt Ich habe den Code in IE6-10, Firefox und Chrome getestet. Für große Dateien (100 MBs) habe ich festgestellt, dass es wichtig ist, den Dateiinhalt ASAP zu spülen, sonst wird der Download-Dialog nicht angezeigt, bis eine lange Zeit oder niemals. Ltphp-Header (Content-Disposition: Anhang Dateiname Urlencode (Datei)) Header (Content-Type: Applicationforce-Download) Header (Content-Type: Applicationoctet-Stream) Header (Content-Type: Anwendungsdownload) Header (Content-Beschreibung: Datei Transfer) Header (Content-Length: Dateigröße (Datei)) Flush () Das ist nicht wichtig. Fp fopen (datei r) während (fep (fp)) echo fread (fp. 65536) flush () das ist wichtig für große Downloads fclose (fp) gt Wenn du havent benutzt hast, kann HTTP Response 204 sehr bequem sein. 204 teilt dem Server mit, diese Anforderung sofort zu bestätigen. Dies ist hilfreich, wenn Sie eine Javascript - (oder ähnliche) Client-Side-Funktion wünschen, um eine serverseitige Funktion auszuführen, ohne die aktuelle Webseite zu aktualisieren oder zu ändern. (HTTP1.0 204 No Response) Ein Aufruf von sessionwriteclose () vor der Anweisung ltphp header (Ort: URL) exit (; ) Gt wird empfohlen, wenn Sie sicher sein wollen, dass die Sitzung aktualisiert wird, bevor Sie mit der Umleitung fortfahren. Wir haben eine Situation gefunden, in der das von der Umleitung zugegriffene Skript die Sitzung nicht korrekt geladen hat, da das Präzedenz-Skript nicht die Zeit hatte, es zu aktualisieren (wir verwendeten einen Datenbank-Handler). Nur um euch alle zu informieren, verwechselt nicht zwischen Content-Transfer-Encoding und Content-Encoding Content-Transfer-Encoding gibt die Codierung an, die verwendet wird, um die Daten im HTTP-Protokoll zu übertragen, wie zB raw binary oder base64. (Binär ist kompakter als base64. Base64 mit 33 Overhead). ZB Verwendung: - header (Content-Transfer-Encoding: binär) Content-Encoding wird verwendet, um Dinge wie die gzip-Komprimierung auf die contentdata anzuwenden. ZB Verwenden Sie: - header (Content-Encoding: gzip) Sie können HTTPs Etags und zuletzt geänderte Termine verwenden, um sicherzustellen, dass Sie die Browser-Daten, die sie bereits zwischengespeichert hat, nicht senden. Ltphp lastmodifiedtime filemtime (Datei) etag md5file (file) header (zuletzt modifiziert: gmdate (d, d MYH: i: s. Zuletzt modifiedtime) GMT) header (Etag: etag) if (strtotime (SERVER HTTPIFMODIFIEDSINCE) lastmodifiedtime trim ( SERVER HTTPIFNONEMATCH) etag) header (HTTP1.1 304 nicht modifiziert) exit gt Wenn du einen Header entfernen und ihn als Teil der Header-Antwort abschicken willst, gibt es einfach nichts als Header-Wert nach dem Header-Namen. Beispielsweise. PHP, standardmäßig, gibt immer den folgenden Header zurück: Welche Ihre gesamte Header-Antwort sieht aus wie HTTP1.1 200 OK Server: Apache2.2.11 (Unix) X-Powered-By: PHP5.2.8 Datum: Fr, 16 Okt 2009 23: 05:07 GMT Inhaltstyp: texthtml charsetUTF-8 Verbindung: schließen Wenn Sie den Header-Namen ohne Wert so nennen. Deine Header sehen jetzt so aus: HTTP1.1 200 OK Server: Apache2.2.11 (Unix) X-Powered-By: PHP5.2.8 Datum: Fr, 16 Okt 2009 23:05:07 GMT Verbindung: close Ich möchte nur hinzufügen , Da sehe ich hier viele falsche Formate. 1. Alle verwendeten Header haben erste Buchstaben Großbuchstaben, also musst du das folgen. Zum Beispiel: Ort, nicht Standort Content-Typ, nicht Content-Typ, noch INHALT-TYP 2. Dann muss es Colon und Space sein, wie gut: header (Content-Type: textplain) falsch: header (Content-Type: textplain ) 3. Ort header MUSS absolut uri mit Schema, Domain, Port, Pfad, etc. 4. Relative URIs sind NICHT erlaubt falsch: Location: something. phpa1 falsch: Location. A1 Es wird Proxy-Server und http-Clients glücklicher machen. Nach vielen Recherchen und Tests, Id gerne meine Ergebnisse über meine Probleme mit Internet Explorer und Datei Downloads zu teilen. Werfen Sie einen Blick auf diesen Code, der den normalen Download eines Javascript repliziert: ltphp if (strstr (SERVER HTTPUSERAGENT, MSIE) false) header (Content-type: textjavascript) header (Content-Disposition: inline filenamedownload. js) header (Inhalt (Content-Disposition: attachment filenamedownload. js) header (Content-Länge:. Dateigröße (my-file. js) Header (Content-Disposition: attachment filenamedownload. js) Header (Cache-Control: No-Cache) Header (Pragma: No-Cache) beinhalten (my-Cache) Header (Gültig bis: Fr, 01 Jan 2010 05:00:00 GMT), wenn (strstr (SERVER HTTPUSERAGENT, MSIE) File. js) gt Nun lass mich erklären: Ich fange an, wenn ich auf IE klicke, dann wenn ich nicht IE bin, setze ich Content-Typ (Groß - / Kleinschreibung beachten) auf JS und setze Content-Disposition ein (jeder Header ist von nun an Groß - und Kleinschreibung ) Zu Inline, weil die meisten Browser außerhalb von IE gerne JS Inline anzeigen. (Benutzer können Einstellungen ändern). Der Content-Length-Header wird von einigen Browsern benötigt, um das Download-Feld zu aktivieren. Dann, wenn es IE ist, ist der Applicationforce-Download Content-Typ manchmal erforderlich, um das Download-Feld zu zeigen. Verwenden Sie dies, wenn Sie nicht möchten, dass Ihr PDF im Browser (im IE) angezeigt wird. Ich benutze es hier, um sicherzustellen, dass sich die Box öffnet. Wie auch immer, ich setze die Content-Disposition an die Anlage, weil ich schon weiß, dass die Box erscheint. Dann habe ich wieder die Content-Length. Jetzt, heres mein großer Punkt. Ich habe die Cache-Control und Pragma Header nur geschickt, wenn nicht IE. DIESE HEADERS WERDEN DOWNLOAD AUF IE VERMEIDEN. Verwenden Sie nur den Wähler-Header, schließlich verlangt es, dass die Datei beim nächsten Mal wieder heruntergeladen wird. Dies ist kein Bug IE speichert Downloads im Ordner "Temporary Internet Files", bis der Download abgeschlossen ist. Ich weiß das, weil ich einmal eine riesige Datei auf meine Dokumente heruntergeladen habe, aber das Download-Dialogfeld legte es in den Temp-Ordner und verschob es am Ende. Denken Sie nur darüber nach. Wenn IE verlangt, dass die Datei in den Temp-Ordner heruntergeladen wird, wird die Einstellung der Cache-Control - und Pragma-Header zu einem Fehler führen. Ich hoffe das spart jemand etwas Zeit Hier ist ein PHP-Skript, das ich geschrieben habe, um eine Datei zu streamen und sie mit einer xor-Operation zu verschlüsseln Auf den Bytes und mit einem Schlüssel. Die Verschlüsselung funktioniert sehr gut, aber die Geschwindigkeit verringert sich um 2, es ist jetzt 520KiBs. Der Benutzer wird nun nach einem md5-Passwort gefragt (anstatt es direkt im Code zu halten). Es gibt einen Teil in Französisch, weil seine meine Muttersprache so ändern, wie Sie wollen. Ltphp Stream-Dateien und verschlüsseln die Daten on-the-fly Einstellungen - Datei zum Streamen Datei FILEout - Lesen Puffer Pufferlänge 3840 - Schlüssel in hex keychar 9cdfb439c7876e703e307864c9167a15 Funktion: Konvertierung hex Schlüssel in einer Zeichenfolge in binäre Funktion hex2bin (h) if ( Isstring (h)) return null r array () für (a 0 (a 2) lt strlen (h) a) ta hexdec (h 2 a) tb hexdec (h (2 a 1)) ra (int) ((ta Ltlt 4) tb) return r Funktion zum Senden der Auth-Header-Funktion askPassword (Text Geben Sie das Passwort ein) header (WWW-Authenticate: Basic Realm. Utf8decode (Text).) Header (HTTP1.0 401 Unautorisiert) return 1 Key wird gefragt Der erste Start, wenn (isset (SERVER PHPAUTHPW)) askPassword () Echo Une cl est ncessaire ltbr gt exit Holen Sie sich den Schlüssel in hex keychar SERVER PHPAUTHPW Konvertieren Schlüssel und legen Sie die Größe der Taste Schlüssel hex2bin (Keychar) Keylength Count (Key) Teste Si la cl est valide en hex if (Schlüsselschlüssellänge lt 4) askPassword (Cl incorrecte) Echo Cl incorrecte ltbr gt exit () Teste si la cl est de longueur düne puissance de 2 if ((keylength 2) 0) askPassword (Cl de Langzeitverkürzung (multiple de 2 uniquement)) Echo Cl de longueur incorrecte (puissance de 2 uniquement) ltbr gt exit () Header-Header (Content-Type: Applicationoctet-Stream) Header (Content-Transfer-Encoding: binärer) Header (Content - Länge:. Dateigröße (Datei). ) Header (filename. File.) Flush () das ist nicht wirklich wichtig. Öffnen der Datei im schreibgeschützten fp fopen (Datei r) while (feof (fp)) Lesen einer Puffergröße des Dateipuffers fread (fp. Pufferlänge) j 0 für (i 0 i lt Pufferlänge i) Der Schlüssel wird gelesen In der Schleife, um die ganze Datei zu verschlüsseln, wenn (i keylength 0) j 0 eine xor-Operation zwischen dem Schlüssel und der Datei anwenden, um zu kryptieren Dieser Vorgang isst eine Menge CPU-Zeit (Stream bei 1MiBs auf meinem Server Intel E2180) tmp pack (C. Schlüssel j) bufferE (Puffer i tmp) lt Le fameux XOR Sende den verschlüsselten Daten-Echo-Puffer ein Puffer speichern p-Puffer bush () Dies ist für große Downloads wichtig. Fclose (fp) exit () Schließen Sie die Datei und ihre fertigen fclose (fp ) VERMEIDEN SIE ZERO BYTE ORDER MARK Header MUSS vor ALLES auf der Seite gesendet werden. Sogar ein einziger Raum wird dein Skript brechen. In meinem Fall gab es BOM in die Codierung gesetzt, also habe ich die Datei mit Notepad geöffnet und die Codierung auf UTF-8 (keine Stückliste) und voila gesetzt, alles funktioniert jetzt super. Ich habe lange versucht, festzustellen, warum Internet Explorer 7 nicht den Benutzer auffordert, einen Download zu speichern, der auf dem Dateinamen basiert, der auf einem Content-Disposition: attachment Dateiname angegeben ist. Kopfzeile. Ich habe schließlich festgestellt, dass meine Apache-Installation einen zusätzlichen Header hinzufügte: Vary: Host, der IE geworfen hat - wie pro support. microsoftkb824847 fand ich manuelles Festlegen des Vary-Headers aus PHP wie folgt Header (Vary: User-Agent) IE erlaubt Verhalten sich wie beabsichtigt Hoffe das spart jemand anderes etwas, die Codierung einer Datei wird vom Content-Type entdeckt, entweder im HTML-Meta-Tag oder als Teil des HTTP-Headers. So benötigt der Server und der Browser keine Unicode-Datei, um mit einer Stücklistenmarke zu beginnen. Stücklisten können auch nix-Systeme verwechseln. Weitere Informationen unter unicode. orgfaqutfbom. htmlbom1 Auf einer anderen Anmerkung: Safari kann CMYK-Bilder anzeigen (zumindest die OS X-Version, da sie die Dienste von QuickTime verwendet) Einstellen eines Location-Headers gibt einen REDIRECT (302) Statuscode an den Browser zurück, 201 oder ein 3xx Statuscode wurde bereits gesetzt. Wenn Sie eine Antwort auf eine POST-Anfrage senden, können Sie sich die RFC 2616 Abschnitte 10.3.3 und 10.3.4 anschauen. Es wird vorgeschlagen, dass, wenn Sie möchten, dass der Browser sofort die Ressource in der Location-Header in diesem Umstand, sollten Sie einen 303 Status-Code nicht die 302 (mit dem gleichen Link wie Hypertext im Körper für sehr alte Browser). Dies kann (seltene) Konsequenzen haben, wie in Bug 42969 erwähnt. Erstellen Sie einen Anhang Content-Disposition Header-Wert mit dem angegebenen Dateinamen, falls vorhanden. Der Dateiname ist optional und wenn kein Dateiname gewünscht wird, aber Sie möchten Optionen angeben. Den Dateinamen auf undefined setzen. Anmerkung HTTP-Header sind vom ISO-8859-1-Zeichensatz. Wenn du diesen Header durch ein anderses als setHeader in Node. js schreibst, kannst du die Binärcodierung in Node. js. ContentDisposition akzeptiert diese Eigenschaften im Optionsobjekt. Wenn die Dateiname-Option außerhalb von ISO-8859-1 liegt, wird der Dateiname tatsächlich in einem ergänzenden Feld für Clients gespeichert, die Unicode-Dateinamen unterstützen und eine ISO-8859-1-Version des Dateinamens automatisch generiert wird. Hiermit wird der ISO-8859-1-Dateiname angegeben, um die automatische Generierung zu überschreiben oder die Generierung alle zusammen zu deaktivieren. Ein String spezifiziert den ISO-8859-1-Dateinamen, der anstelle der automatischen Generierung verwendet werden soll. False deaktiviert einen ISO-8859-1-Dateinamen und enthält nur die Unicode-Version (es sei denn, der Dateiname ist bereits ISO-8859-1). True ermöglicht die automatische Generierung, wenn der Dateiname außerhalb von ISO-8859-1 liegt. Wenn die Dateiname-Option ISO-8859-1 ist und diese Option angegeben ist und einen anderen Wert hat, wird die Dateiname-Option im erweiterten Feld codiert und diese als Fallback-Feld gesetzt, obwohl sie beide ISO-8859-1 sind. Gibt den Dispositionstyp an, standardmäßig auf quotattachmentquot. Dies kann auch quotinlinequot sein. Oder alle anderen Werte (alle Werte außer Inline werden wie Attachment behandelt, können aber zusätzliche Informationen übermitteln, wenn beide Parteien damit einverstanden sind). Der Typ wird auf Kleinbuchstaben normiert. Analysieren Sie einen Content-Disposition-String. Dies verarbeitet automatisch erweiterte (quotUnicodequot) Parameter, indem sie sie decodiert und sie unter dem Standardparameternamen bereitstellt. Dies gibt ein Objekt mit den folgenden Eigenschaften zurück (Beispiele werden für die Zeichenfolgenanfügung angezeigt DateinamequotEURO rates. txtquot DateinameUTF-8e282ac20rates. txt): type. Die Dispositionstyp (immer Kleinbuchstaben). Beispiel: anhangparameter Ein Objekt der Parameter in der Disposition (Name des Parameters immer Kleinbuchstaben und erweiterte Versionen ersetzen nicht erweiterte Versionen). Beispiel: Senden einer Datei zum Download
Comments
Post a Comment