像图像或 PDF 文件这样的 MIME 类型不需要 base64 或以其他方式编码吗?

Posted

技术标签:

【中文标题】像图像或 PDF 文件这样的 MIME 类型不需要 base64 或以其他方式编码吗?【英文标题】:Don't MIME types like images or PDF files need to be base64 or otherwise encoded? 【发布时间】:2018-04-02 11:35:46 【问题描述】:

图像或 PDF 文件等 MIME 类型不需要为 base64 或以其他方式编码 当想要通过 HTTP 发送或上传它们时,因为它们可能包含控制字符?

二进制数据不需要与文本数据分开处理,或者我什至可以将文本文件作为二进制数据(应用程序/八位字节流)传输并让接收应用程序决定如何处理它?

【问题讨论】:

【参考方案1】:

HTTP 请求不需要任何传输编码。使用multipart/form-data 正确构造的HTTP POST 请求将包括Content-Type 用于通过每个边界的每个部分。不需要将其视为 MIME 消息。服务器/应用程序,此 HTTP 请求的目标地址,将根据内容标头,特别是 Content-Type 处理每个边界内容。 HTTP POST 有效负载的小示例可能看起来像...

POST /my_page HTTP/1.1
Content-Type: multipart/form-data; boundary=MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF

--MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF
Content-Disposition: form-data; name="field1"

content of this input field
--MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF
Content-Disposition: form-data; name="html_content"

<p><em>Dear customer</em>,</p>
<p>Please review the attached.</p>
--MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF
Content-Disposition: form-data; name="file0"; filename="sample.txt"
Content-Type: text/plain

Plain text file content.
--MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF
Content-Disposition: form-data; name="file1"; filename="sample.docx"
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

PK     ! ߤÒlZ      [Content_Types].xml ¢(  
l"%3÷Þ3VƃÑÚšl  µw%ë=–“^i7+Ù×ä-d&á”0ÞAÉ6€l4¼½L60#µÃ’ÍS
Oœ£œƒXø Ž*•V$z3„ü3à÷½Þ—Þ%p)Oµ^ “²×5nH"dÙsÓXg•L„
    Á  8    
--MNZ2WM28FYlZX3miY-6E9iytpT0UfW-uzlOvF--

【讨论】:

以上是关于像图像或 PDF 文件这样的 MIME 类型不需要 base64 或以其他方式编码吗?的主要内容,如果未能解决你的问题,请参考以下文章

我能否可靠地找出正确的 mime 类型来提供不受信任的内容?

IIS7 的 AppCache mime 类型

访问 Apache 的 Mime-Type 到扩展映射

哪些 MIME 类型用于 HTML/网页

Rails -nokogiri GEM:检测 URL 中图像的 MIME 类型

PDF 文件的正确 MIME 媒体类型