当前位置: 首页 > 知识库问答 >
问题:

为什么在应用程序/八位字节流上使用multipart/form-data?

澹台新知
2023-03-14

我不清楚它们是什么,也不知道什么时候使用它们。

在这个例子中,我有一个REST客户端,我想发送一个文件(.zip文件),如果我使用其中任何一种类型,会发生什么

  • 我猜application/octet-stream相当于application/zip,这只是为了向另一方提供有关传输数据的提示,文件以某种方式进行了编码
  • 多部分/表单数据以某种方式破坏数据,您可以通过其特定的mime类型传递“多个数据”,文件以某种方式进行编码,并且是多部分请求的一部分。在这种情况下,我不知道如何告诉假客户机请求是多端口的,而确切的部分是八位字节流

但是,如果我只想发送一个文件,八位流没有什么可执行的多部分给我?

在这两个请求中,整个文件都以某种方式在内部编码,对吗?处理过程有什么不同。我看不出有什么好处。为什么佯装客户端教程使用多部分,或者这只是一种常见做法?

此外,我还发现,不知何故,您还需要使服务器中的整个多部分马戏团能够接收它。那么重点是什么呢?

共有1个答案

潘英豪
2023-03-14

过去,我使用application/zipapplication/octet-stream来表示。zip文件。对于您的情况,这两个标题中的任何一个都可以正常工作。

根据另一位评论-

“Multipart用于在一个HTTP请求中发送多个部分(例如表单字段和一些文件),并指定文件名和编码。它不会将大型文件拆分为多个部分。一个文件仍然只是多部分请求的一部分。两种情况下都可以包含HTTP头。”

以下线程还可以提供更多上下文:

多部分表单数据

URL编码的多部分表单数据

 类似资料:
  • 我有一个第三方服务,它用文件向我的Django应用程序发出POST请求。要成功上传到Django应用程序,请求必须具有“多部分/表单数据”内容类型,但在我的案例和请求中,内容类型是“八位流”。文件总是空的。我怎么能在Django中接收八位流内容类型的文件?

  • 我写一个服务器端应用程序与嵌入jetty接收一些请求从第三方客户端。客户端将一些小文件上传到服务器。但是我很惊讶地看到,客户端并没有上传文件数据作为应用程序/八位流,而是上传了一个json作为应用程序/json,其中包括文件的所有元数据,并在一个字段中将所有数据作为字符串 {“_id”:“水果”,“名称”:“水果”,“_shasum”:“4954f1f8b4a8cbf9ea6b675face476

  • 最近我为下载创建了一个子域,我希望浏览器下载文件,而不是查看文件。为此,我在文件: 在Firefox和GoogleChrome上,它可以正常工作,但微软浏览器-Internet Explorer和微软Edge都忽略了MIME类型,而是查看它们。我怎样才能强迫他们也下载这些文件呢?

  • 我有一个节点-快递应用程序。在那里,我试图调用一个API,它响应一个原始的xlsx对象作为 'Content-Type':'应用程序/八位流;charset=; UTF-8' 编写如何调用API的代码: 现在我正试图用这些数据做两件事。 将其写入excel文件。下面是我尝试的代码: 因此,在这两种情况下,文件都会损坏。 但是API响应是完美的,因为当它被UI直接使用时,xlsx文件正在正确生成。

  • 我有一个简单的RabbitMQ源和接收器。我正在将消息发布到具有以下属性的源队列: 和JSON负载: RabbitMQ接收器使用而不是JSON获取消息。 我尝试使用以下属性启动应用程序: 但这于事无补。 流定义: 如何将内容类型设置为应用程序/json?参考指南似乎没有答案。 发布版本: spring-cloud-dataflow-server:2.0.1。释放 spring-cloud-skip

  • 不知道为什么我面临这个问题,无法在chrome浏览器中下载pdf文件,它在Nginx服务器中显示以下错误。 解释为文档但使用mime类型应用程序/八位字节流pdf传输的资源 虽然我已经将mime类型作为application/pdf包含在内