Saturday 1 April 2017

Html Mime Typ Binär Optionen

Id empfiehlt Applicationoctet-Stream als RFC2046 sagt Der Octet-Stream-Subtyp wird verwendet, um anzuzeigen, dass ein Körper willkürliche Binärdaten enthält und die empfohlene Aktion für eine Implementierung, die eine Applicationoctet-Stream-Einheit empfängt, ist einfach anzubieten, um die Daten in eine Datei zu legen. . Ich denke, diese Art und Weise erhalten Sie eine bessere Handhabung aus beliebigen Programmen, die barf bei der Begegnung mit Ihrem unbekannten Mime-Typ. Mimetype-Header werden vom Browser für die Zwecke eines (schnellen) möglichen Identifizierens eines Handlers erkannt, um die heruntergeladene Datei als Ziel zu verwenden, zum Beispiel würde PDF heruntergeladen und Ihr Adobe Reader-Programm mit dem Pfad der PDF-Datei ausgeführt werden Ein Argument, Wenn Ihre Bedürfnisse sind, um eine Browser-Erweiterung zu schreiben, um Ihre heruntergeladene Datei zu behandeln, durch Ihr Betriebssystem-System, oder Sie wollen einfach nur, dass Sie ein professioneller aussehen gehen vor und wählen Sie einen einzigartigen Mimetyp für Sie zu verwenden, würde es Machen keinen Unterschied, da das Operationssystem keinen Griff haben würde, um es zu öffnen (einige Browser haben wenige Bündel-Plugins, zum Beispiel neue Google Chrome-Versionen hat einen eingebauten PDF-Reader), wenn Sie sicherstellen möchten, dass die Datei würde Heruntergeladen haben Sie einen Blick auf diese Antwort: stackoverflowa34758866257319 Wenn Sie möchten, dass Ihre Datei-Typ besonders organisiert, könnte es sich lohnt, ein paar Buchstaben in den ersten paar Bytes der Datei hinzufügen, zum Beispiel jedes JPG hat dies bei seinem Datei-Start: Wenn Sie sich einen Sprung von 4 oder 8 Bytes leisten könnte es sehr hilfreich für Sie in den Rest des Weges beantwortet 13. Januar 16 um 6:13 Sie könnten vielleicht verwenden: beantwortet Dec 28 16 um 10:16 Ihre Antwort 2017 Stack Exchange , Inc4 Das Content-Type Header-Feld Der Zweck des Content-Type-Feldes besteht darin, die im Körper enthaltenen Daten vollständig zu beschreiben, damit der empfangende User-Agent einen geeigneten Agenten oder Mechanismus auswählen kann, um die Daten dem Benutzer zu präsentieren oder anderweitig zu behandeln Mit den Daten in geeigneter Weise. Das Header-Feld des Content-Typs wird verwendet, um die Art der Daten im Körper einer Entität anzugeben, indem sie Typ - und Subtyp-Identifikatoren angeben und indem sie Hilfsinformationen bereitstellen, die für bestimmte Typen erforderlich sind. Nach dem Typ - und Subtyp-Namen ist der Rest des Header-Feldes einfach ein Satz von Parametern, der in einer Attributwert-Notation angegeben ist. Die Menge der sinnvollen Parameter unterscheidet sich für die verschiedenen Typen. Die Reihenfolge der Parameter ist nicht signifikant. Unter den definierten Parametern handelt es sich um einen Zeichensatzparameter, mit dem der im Körper verwendete Zeichensatz deklariert werden kann. Kommentare sind nach RFC 822 Regeln für strukturierte Header-Felder erlaubt. Im Allgemeinen wird der Top-Level-Content-Type verwendet, um den allgemeinen Datentyp zu deklarieren, während der Subtyp ein bestimmtes Format für diesen Datentyp angibt. So genügt ein Content-Type von imagexyz, um einem User-Agenten zu sagen, dass die Daten ein Bild sind, auch wenn der User-Agent keine Kenntnis von dem spezifischen Bildformat xyz hat. Solche Informationen können z. B. verwendet werden, um zu entscheiden, ob ein Benutzer die Rohdaten aus einem nicht erkannten Subtypen zeigen soll oder nicht - eine solche Aktion kann für nicht erkannte Subtypen von Text sinnvoll sein, aber nicht für nicht erkannte Subtypen von Bild oder Audio. Aus diesem Grund sollten registrierte Subtypen von Audio, Bild, Text und Video keine eingebetteten Informationen enthalten, die wirklich von einem anderen Typ sind. Solche Compoundtypen sollten mit den Multipart - oder Applikationstypen dargestellt werden. Parameter sind Modifikatoren des Content-Subtyps und beeinflussen grundsätzlich nicht die Anforderungen des Host-Systems. Obwohl die meisten Parameter nur bei bestimmten Inhaltsarten sinnvoll sind, sind andere global in dem Sinne, dass sie sich auf jeden Subtyp beziehen könnten. Beispielsweise ist der Grenzparameter nur für den multipartigen Inhaltstyp sinnvoll, aber der Zeichensatzparameter könnte bei mehreren Inhaltstypen sinnvoll sein. In diesem Dokument wird ein erster Satz von sieben Inhaltstypen definiert. Dieser Satz von Top-Level-Namen soll im Wesentlichen vollständig sein. Es wird erwartet, dass Ergänzungen zu den größeren Mengen von unterstützten Typen im Allgemeinen durch die Schaffung neuer Subtypen dieser Anfangstypen erreicht werden können. In Zukunft werden mehr Top-Level-Typen nur durch eine Erweiterung zu diesem Standard definiert werden. Wenn ein anderer Primärtyp aus irgendeinem Grund verwendet werden soll, muss er einen Namen angeben, der mit X - beginnt, um seinen Nicht-Standardstatus anzugeben und einen möglichen Konflikt mit einem zukünftigen offiziellen Namen zu vermeiden. In der erweiterten BNF-Notation von RFC 822 ist ein Content-Type-Header-Feldwert wie folgt definiert: Beachten Sie, dass die Definition von tspecials die gleiche ist wie die RFC 822 Definition von Specials mit der Addition der drei Zeichen, und. Beachten Sie auch, dass eine Subtyp-Spezifikation MANDATORY ist. Es gibt keine Standard-Subtypen. Typ-, Subtyp - und Parameternamen werden nicht zwischen Groß - und Kleinschreibung unterschieden. Zum Beispiel sind TEXT, Text und TeXt gleichwertig. Parameterwerte sind normalerweise Groß - / Kleinschreibung, aber bestimmte Parameter werden je nach Verwendungszweck als Groß - und Kleinschreibung interpretiert. (Z. B. Multipart-Begrenzungen sind Groß - / Kleinschreibung, aber der Zugriffstyp für messageExternal-body ist nicht zwischen Groß - und Kleinschreibung unterschieden). Über diese Syntax hinaus ist die einzige Einschränkung für die Definition von Subtyp-Namen der Wunsch, dass ihre Verwendungen nicht in Konflikt geraten müssen. Das heißt, es wäre nicht wünschenswert, zwei verschiedene Communities mit Content-Type: applicationfoobar zu haben, um zwei verschiedene Dinge zu bedeuten. Der Prozess der Definition neuer Content-Subtypen ist dann nicht beabsichtigt, ein Mechanismus für die Auferlegung von Beschränkungen zu sein, sondern einfach ein Mechanismus für die Veröffentlichung der Nutzungen. Es gibt also zwei akzeptable Mechanismen zur Definition neuer Content-Type-Subtypen: Private Werte (beginnend mit X-) können bilateral zwischen zwei kooperierenden Agenten ohne externe Registrierung oder Standardisierung definiert werden. Neue Standardwerte müssen dokumentiert, registriert und von der IANA genehmigt werden, wie in Anhang F beschrieben. Für die öffentliche Nutzung sind die Formate, auf die sie sich beziehen, auch durch eine veröffentlichte Spezifikation definiert und eventuell zur Normung angeboten. Die sieben standardmäßigen vordefinierten Content-Typen sind im Großteil dieses Dokuments aufgeführt. Sie sind: Text Textinformationen. Der primäre Subtyp, einfach, zeigt den einfachen (unformatierten) Text an. Es ist keine spezielle Software erforderlich, um die volle Bedeutung des Textes zu erhalten, abgesehen von der Unterstützung für den angegebenen Zeichensatz. Subtypen sind für bereicherten Text in Formularen zu verwenden, in denen Anwendungssoftware das Aussehen des Textes verbessern kann, aber diese Software darf nicht benötigt werden, um die allgemeine Idee des Inhalts zu erhalten. Mögliche Subtypen umfassen somit jedes lesbare Textverarbeitungsformat. Ein sehr einfacher und tragbarer Subtyp, richtext, ist in diesem Dokument definiert. Multipart-Daten, die aus mehreren Teilen unabhängiger Datentypen bestehen. Es werden vier initiale Subtypen definiert, einschließlich des primären gemischten Subtyps, alternativ zur Darstellung derselben Daten in mehreren Formaten, parallel für Teile, die gleichzeitig betrachtet werden sollen, und für Multipart-Entitäten, in denen jeder Teil eine Typ-Nachricht ist, zu verdauen. Nachricht eine gekapselte Nachricht. Ein Text der Content-Type-Nachricht ist selbst eine vollständig formatierte RFC 822-konforme Nachricht, die ein eigenes Content-Type-Header-Feld enthalten kann. Der primäre Subtyp ist rfc822. Der partielle Subtyp ist für Teilnachrichten definiert, um die fragmentierte Übertragung von Körpern zu ermöglichen, die als zu groß angesehen werden, um durch Posttransporteinrichtungen weitergegeben zu werden. Ein anderer Subtyp, External-Body, ist für die Spezifizierung von großen Körpern durch Bezugnahme auf eine externe Datenquelle definiert. Bildbilddaten. Das Bild benötigt ein Anzeigegerät (z. B. eine grafische Anzeige, einen Drucker oder eine FAX-Maschine), um die Informationen anzuzeigen. Initiale Subtypen sind für zwei weit verbreitete Bildformate, jpeg und gif definiert. Audio-Audiodaten, mit dem ersten Subtyp-Basic. Audio benötigt ein Audioausgabegerät (wie zB einen Lautsprecher oder ein Telefon), um den Inhalt anzuzeigen. Video-Videodaten. Video erfordert die Möglichkeit, bewegte Bilder anzuzeigen, in der Regel mit Spezialhardware und Software. Der anfängliche Subtyp ist mpeg. Anwendung irgendeine andere Art von Daten, typischerweise entweder nicht interpretierte Binärdaten oder Informationen, die von einer Mail-basierten Anwendung verarbeitet werden sollen. Der primäre Subtyp, octet-stream, soll bei uninterpretierten Binärdaten verwendet werden, wobei in diesem Fall die einfachste empfohlene Aktion anbieten soll, um die Informationen in eine Datei für den Benutzer zu schreiben. Zwei zusätzliche Subtypen, ODA und PostScript, sind für den Transport von ODA - und PostScript-Dokumenten in Körpern definiert. Andere erwartete Verwendungen für die Anwendung umfassen Kalkulationstabellen, Daten für Mail-basierte Scheduling-Systeme und Sprachen für aktive (Computational) E-Mail. (Beachten Sie, dass aktive E-Mail mehrere Sicherheitsüberlegungen mit sich bringt, die später in diesem Memo, insbesondere im Zusammenhang mit ApplicationPostScript, besprochen werden.) Standard-RFC 822-Nachrichten werden von diesem Protokoll als Klartext im US-ASCII-Zeichensatz eingegeben, der explizit angegeben werden kann Als Inhaltstyp: textplain charsetus-ascii. Wenn kein Content-Type angegeben ist, entweder durch Fehler oder durch einen älteren User Agent, wird diese Vorgabe angenommen. In Anwesenheit eines MIME-Versions-Header-Feldes kann auch ein empfangendes User Agent annehmen, dass der US-ASCII-Text der Absender war. In Abwesenheit einer MIME-Version-Spezifikation muss noch ein US-ASCII-Text angenommen werden, aber die Absenderabsicht könnte anders gewesen sein. Es sollte darauf hingewiesen werden, dass die hier aufgeführten Liste der Content-Type-Werte zeitlich ergänzt werden kann Die oben beschriebenen Mechanismen, und dass die Menge der Subtypen voraussichtlich erheblich wachsen wird. Wenn ein Mail-Reader mit einem unbekannten Content-Type-Wert auf E-Mails trifft, sollte er es in der Regel als analog zum Applicationoctet-Stream behandeln, wie später in diesem Dokument beschrieben wird. Senden von HTML-Formulardaten in ASP-Web-API: File Upload und Multipart MIME Hier ist ein Beispiel eines HTML-Formulars zum Hochladen einer Datei: Dieses Formular enthält ein Texteingabesteuerelement und ein Dateieingabe-Steuerelement. Wenn ein Formular ein Dateieingabe-Steuerelement enthält, sollte das Enctype-Attribut immer quotmultipartform-dataquot sein, das angibt, dass das Formular als Multipart-MIME-Nachricht gesendet wird. Das Format einer mehrteiligen MIME-Nachricht ist am einfachsten zu verstehen, indem man eine Beispielanforderung betrachtet: Diese Nachricht ist in zwei Teile gegliedert. Eine für jede Formularsteuerung. Teilgrenzen werden durch die Linien angezeigt, die mit Bindestrichen beginnen. Die Teilgrenze enthält eine zufällige Komponente (quot41184676334quot), um sicherzustellen, dass die Grenzzeichenfolge nicht versehentlich innerhalb eines Nachrichtenteils erscheint. Jeder Nachrichtenteil enthält einen oder mehrere Header, gefolgt von dem Teileinhalt. Der Content-Disposition-Header enthält den Namen des Controls. Für Dateien enthält es auch den Dateinamen. Der Content-Type-Header beschreibt die Daten im Teil. Wenn dieser Header weggelassen wird, ist die Voreinstellung textplain. Im vorherigen Beispiel hat der Benutzer eine Datei mit dem Namen GrandCanyon. jpg mit dem Inhaltstyp imagejpeg hochgeladen und der Wert der Texteingabe war ein. File Upload Now let39s Blick auf einen Web-API-Controller, der Dateien aus einer multipart MIME-Nachricht liest. Der Controller liest die Dateien asynchron. Web-API unterstützt asynchrone Aktionen mit dem aufgabenbasierten Programmiermodell. Zuerst ist hier der Code, wenn du auf Framework 4.5 gehst, der den Async unterstützt und Schlüsselwörter abwartet. Beachten Sie, dass die Controller-Aktion keine Parameter übernimmt. Das ist, weil wir den Anforderungskörper innerhalb der Aktion verarbeiten, ohne einen Medienformat-Formatierer aufzurufen. Die Methode IsMultipartContent prüft, ob die Anforderung eine mehrteilige MIME-Nachricht enthält. Wenn nicht, gibt der Controller den HTTP-Statuscode 415 (Nicht unterstützter Medientyp) zurück. Die MultipartFormDataStreamProvider-Klasse ist ein Helper-Objekt, das Dateistreams für hochgeladene Dateien zuweist. Um die Multipart-MIME-Nachricht zu lesen, rufen Sie die ReadAsMultipartAsync-Methode auf. Diese Methode extrahiert alle Nachrichtenteile und schreibt sie in die vom MultipartFormDataStreamProvider bereitgestellten Streams. Wenn die Methode abgeschlossen ist, können Sie Informationen über die Dateien aus der FileData-Eigenschaft erhalten, bei der es sich um eine Sammlung von MultipartFileData-Objekten handelt. MultipartFileData. FileName ist der lokale Dateiname auf dem Server, in dem die Datei gespeichert wurde. MultipartFileData. Headers enthält den Part-Header (nicht den Request-Header). Sie können diese verwenden, um auf die ContentDisposition - und Content-Type-Header zuzugreifen. Wie der Name schon sagt, ist ReadAsMultipartAsync eine asynchrone Methode. Um die Arbeit nach Abschluss der Methode durchzuführen, verwenden Sie eine Fortsetzungsaufgabe (4.0) oder das Schlüsselwort warten (4.5). Hier ist die Framework 4.0-Version des vorherigen Codes: Lesen von Formular-Steuerdaten Das HTML-Formular, das ich früher gezeigt habe, hatte eine Texteingabe. Sie können den Wert des Steuerelements aus der FormData-Eigenschaft des MultipartFormDataStreamProviders erhalten. FormData ist eine NameValueCollection, die Namenswertpaare für die Formularsteuerelemente enthält. Die Sammlung kann doppelte Schlüssel enthalten. Betrachten Sie dieses Formular: Der Anforderungskörper könnte so aussehen: In diesem Fall würde die FormData-Sammlung die folgenden Keyvalue-Paare enthalten: trip: round-trip options: nonstop options: dates seat: window


No comments:

Post a Comment