繁体   English   中英

如何确定复制粘贴图像剪贴板的MIME类型?

[英]How to determine MIME type of copy-pasted image clipboard?

我可以假定Mac OS X剪贴板图像数据是png吗?

当我尝试MIME检测剪贴板数据时,它返回application/octet

这具有使每个浏览器下载图像而不显示图像的不良效果。

如果我将内容类型强制为image / png,那么一切似乎都很好,但是我想知道是否有一种方法可以不必进行假设?

$log.debug(e.originalEvent.clipboardData);
for (var i = 0; i < e.originalEvent.clipboardData.items.length; i++) {
var item = e.originalEvent.clipboardData.items[i];
$log.info("Item type: " ,item);
if (item.type.indexOf("image") != -1) {
    $scope.token.images = [];
    $log.debug(item.getAsFile(), {});
...

我使用https://github.com/broofa/node-mime检测MIME类型。

至少从理论上讲,不,您不能假设这一点。

苹果说的是:“要获取剪贴板上当前可用类型的列表,可以使用剪贴板数据对象的types属性。此属性包含具有可用数据的MIME类型的字符串数组。” Webkit DOM编程主题

至少根据w3c,这些选项是:

  • 图片/ png
  • 图片/ jpg
  • 图片/ jpeg
  • 图片/ gif
  • 图片/ svg + xml

编辑:

MIME-detect返回application/octet是,您所使用的库不属于test.js文件这一行中所显示的类型时,会回退到该库:

assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));

该答案更详细地说明了如何处理此“任意二进制数据”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM