如何确定复制粘贴的图像剪贴板的 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
- 图片/动图
- image/svg+xml
编辑:
MIME 检测返回application/octet
的原因是,您使用的库在不知道类型时会回退到该库,如您在测试的这一行中看到的那样.js文件:
assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
这个答案更详细地解释了如何处理这种"任意二进制数据"。
相关文章:
- 如何在internet explorer中从剪贴板中获取base64编码的图像
- 是否可以将画布图像复制到剪贴板
- 使用Jquery将剪贴板图像复制到网页中
- 将javascript制作的图像复制到剪贴板
- 将图像复制到剪贴板,在 Firefox 和 Chrome 中不起作用
- 仅在Chrome中使用javascript将图像复制到剪贴板
- 需要有关使用 ASP.Net 或 JavaScript 将图像复制到网站剪贴板的帮助
- 如何使用纯Javascript让用户将剪贴板中的图像数据粘贴到Firefox中的画布元素中
- 从剪贴板粘贴图像javascript
- 将图像复制到剪贴板
- 将本地图像设置为剪贴板内容
- 浏览器上的图像和文本剪切工具是如何工作的?(印象笔记,剪贴板,剪报.这等)
- 在Firefox中获取剪贴板图像数据
- 从剪贴板获取图像,并从客户端浏览器chrome或firefox将其保存到服务器
- 如何确定复制粘贴的图像剪贴板的 MIME 类型
- 将剪贴板图像粘贴到画布上
- 从剪贴板Firefox获取粘贴的图像
- xul/xpcom将图像从字符串复制到剪贴板
- 如何在Gmail和Google Chrome 12+中使用剪贴板粘贴图像功能
- 从剪贴板复制和粘贴图像,blob错误