- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 ACTION_SEND Intent 共享未知文件类型时,是否应该在设置内容类型时使用 */*
或 application/octet-stream
?
根据 Mozilla 的 Complete list of MIME types
Two primary MIME types are important for the role of default types:
- text/plain is the default value for textual files. A textual file should be human-readable and must not contain binary data.
- application/octet-stream is the default value for all other cases. An unknown file type should use this type. Browsers pay a particular care when manipulating these files, attempting to safeguard the user to prevent dangerous behaviors.
例子
Intent intent = new Intent(Intent.ActionSend);
Uri uri = Uri.FromFile(file);
intent.PutExtra(Intent.ExtraStream, uri);
string fileType = GetMimeTypeByUri(uri);
if (fileType == null)
{
fileType = "*/*"; // ?
fileType = "application/octet-stream"; // ?
fileType = "application/x-binary" // ?
}
intent.SetType(fileType);
StartActivity(Intent.CreateChooser(intent, "Send to..."));
在哪里
private String GetMimeTypeByUri(Uri uri)
{
if (uri.Scheme.Equals(ContentResolver.SchemeContent))
return ContentResolver.GetType(uri);
else
return Android.Webkit.MimeTypeMap.Singleton.GetMimeTypeFromExtension(
Android.Webkit.MimeTypeMap.GetFileExtensionFromUrl(uri.Path).ToLower()
);
}
}
最佳答案
fileType = "* / *";
如果您使用“*/*”的 MIME 类型,而您无法从系统中确定它(它为空),它会触发适当的选择应用程序对话框。
fileType = "application/octet-stream";
通常,它将是一个应用程序或必须在应用程序中打开的文档,例如电子表格或文字处理器。 The "octet-stream" subtype is used to indicate that a body contains arbitrary binary data
fileType = "application/x-binary"
这只是重述“八位字节流”的一种非标准方式。
查看链接了解详情 MIME types , MIME Utils
希望这对你有帮助。
关于android - 具有未知内容类型的 ACTION_SEND Intent (*/* vs application/octet-stream),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45804966/
我正在使用 python Azure sdk。当文件上传时,其内容类型更改为 application/octet-stream。 我想设置其默认内容类型,例如 PNG 图像的 image/png。 我
我在计算字符串长度时遇到问题。我有以下字符串: 30 ctime=1460687405.982514823\n 其格式如下: 扩展 header 应包含一个或多个记录,每个记录的构造如下: “%d %
我有一个简单的视频文件上传表单。它可以在普通 PC 上运行,但是当从移动设备 (Android) 上传时,它会将文件 mime 类型发送为 application/octet-stream,文件 nu
目前,当我使用 shared access signature (SAS) Token 构建 URL 时,我遇到了 Azure 文件存储问题。 。文件将在浏览器中下载,但内容类型始终是应用程序/八位字
我有一个与 corba 相关的问题。 在我的 Java 应用程序中我使用typedef 序列数据; 现在我开始研究这个数据 vector 。如果我对 Corba 规范的理解是正确的序列将转换为 xs:
我希望能够将 ipv6 地址解析为八位字节。有没有类似下面的? IPAddress.Parse(address).GetAddressBytes()[0]; IPAddress.Parse(addre
我们使用以 CHAR(18) 字符集八位字节形式存储在表中的二进制值。 在 Firebird 2.0.4 中,我们使用 ASCII 作为默认数据库字符集和连接字符集。我们有一个可以生成所需数据的 UD
我正在调用imageServer并得到一个 x-genericbytedata-octet-stream 作为响应。所以我想知道我是否可以将其转换为可操作的某种格式,例如ndarray。 这就是我得到
我有一个第三端服务,它向我的 Django 应用程序发出带有文件的 POST 请求。要成功上传到 Django 应用程序,请求必须具有“multipart/form-data”内容类型,但内容类型在我
在将 Spring-MVC 应用程序部署到 Tomcat 服务器时,我遇到了一个问题:服务器一直使用 application/x-octet-stream 作为响应类型。因此,浏览器不会显示页面,而是
我有一个非常基本的问题: 我正在编写代码以使用 JSP 和 Servlet 下载 CSV 文件。我从互联网论坛上获得了代码并且工作正常,但我试图理解以下两行的重要性 response.setConte
如何在 C 语言中将 char 字符串编码为 Octet 字符串?例如,如果有: char *string = "245732473"; 我需要将此字符串编码为八位字节字符串吗?我怎样才能做到这一点?
我正在尝试从 http://api.openweathermap.org/data/2.5/forecast/daily?lat=35&lon=139&cnt=10&mode=json 接收 json
八位字节串和字符有什么区别?如何使用八位字节串?任何人都可以在 Octet 字符串上编写一个小的 C 程序吗?八位字节字符串如何存储在内存中? 最佳答案 标准(等等)使用“八位组”来明确声明他们谈论的
这就是我正在处理的事情。我们的一个程序有一个支持表格,用户可以使用它来请求支持。这个表单的作用是,它向 PHP 脚本执行 HTTP POST 请求,该脚本应该收集信息并将其转发到支持电子邮件地址。 P
我正在尝试通过以下方式使用数据 uri 下载文件: 问题是下载的文件总是命名为“Unknown”,无论我尝试使用什么文件名。这是给文件命名的正确方法吗?或者其他需要完成了吗? 最佳答案 这是解决方案
我正在使用 Postman 发送以下请求: 我的 Controller 看起来像这样: @RestController @RequestMapping(path = RestPath.CHALLENG
我不断收到这个警告 资源被解释为字体,但以MIME类型application / octet-stream传输:“ http://127.0.0.1:8080/assets/font/fontawes
我正在将消息从 Azure IoT 中心路由到 Blob 容器 ( Azure Storage as a routing endpoint )。发送到 IoT 中心的消息的内容类型为“applicat
我有一个 REST Controller : @RequestMapping(value = "greeting", method = RequestMethod.GET, produces = "a
我是一名优秀的程序员,十分优秀!