MIME类型数据是什么?

4
我正在阅读关于“意图”(intents)的文章,并遇到了“MIME”一词。
在 Android 文档中,我找不到有关 “mime-type” 是什么的明确解释。
来自文档:

type -- 指定意图数据的显式类型(MIME 类型)。通常,该类型是从数据本身推断出来的。通过设置此属性,您可以禁用该评估并强制执行显式类型。

1) MIME 到底是什么?
2) 为什么我们需要它们?
3) 如何从 Uri 推断它呢?

P.S. 不要将文档链接给我,我已经读过了。谢谢。


1
同时参考http://zh.wikipedia.org/wiki/MIME和http://zh.wikipedia.org/wiki/Internet_media_type。 - Stephen C
在发布问题之前,请先进行一些谷歌搜索... - rasmeta
3个回答

8

MIME 代表多用途互联网邮件扩展,用于确定互联网通信中的文件类型(基本上是扩展名)。

我们需要它们作为元数据,例如浏览器将从服务器接收到的字节转换为正确的文件扩展名。这里有一个列表,例如image/gif将接收到的数据转换为.gif扩展名

您可以从请求/响应标头中提取mime类型。 Content-type Content-Type: image/gif。您还可以通过Accept http请求属性请求某些特定的mime类型,在其中指定所请求的mime类型。如果服务器无法将您的数据转换为所请求的mime类型,它将以406 Not Acceptable错误代码进行响应。


0

MIME 代表多用途互联网邮件扩展,通常用于在互联网上传输数据时定义数据类型。例如,“application/json”或“application/pdf”或“text/plain”。

我不确定您所说的“从Uri推断”的意思是什么,但以下是我最近在 Xamarin.Android 片段中使用它发送电子邮件 PDF 文件的方法:

UriBuilder ub = new UriBuilder();
Intent intent = new Intent(Intent.ActionSend);
intent.SetType("application/pdf");
intent.PutExtra(Intent.ExtraEmail, new String[] { EMAIL } );
intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.Parse("file:///" + path));
intent.PutExtra(Intent.ExtraSubject, "Notification: " + System.DateTime.Now);
intent.PutExtra(Intent.ExtraText, "There is a new notification.");
StartActivity(Intent.CreateChooser(intent, "Select mailclient"));

-1

从标签解释来看...

1)2)多用途互联网邮件扩展(MIME)是一种互联网标准,它扩展了电子邮件的格式以支持:字符集中的文本,非文本附件,具有多个部分的消息正文以及非 ASCII 字符集中的头信息。

3)不知道

但如果这仍然不够清晰,请前往Viki


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接