Javascript 如何确定复制粘贴图像剪贴板的MIME类型?
我可以假设Mac OS X剪贴板图像数据是png吗 当我尝试MIME检测剪贴板数据时,它返回Javascript 如何确定复制粘贴图像剪贴板的MIME类型?,javascript,macos,browser,mime,Javascript,Macos,Browser,Mime,我可以假设Mac OS X剪贴板图像数据是png吗 当我尝试MIME检测剪贴板数据时,它返回application/octet 这会导致每个浏览器下载图像而不是显示图像 如果我强制将内容类型设置为image/png,一切看起来都很好,但我想知道是否有一种方法可以让我不必做出这样的假设 $log.debug(e.originalEvent.clipboardData); for (var i = 0; i < e.originalEvent.clipboardData.items.lengt
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(), {});
...
$log.debug(例如originalEvent.clipboardData);
对于(var i=0;i
我用它来检测MIME类型。至少在理论上,不,你不能这样假设 以下是apple所说的:“要获得剪贴板上当前可用类型的列表,可以使用clipboardData对象的types属性。该属性包含一个字符串数组,其中包含可用数据的MIME类型。” 这些选择包括:
- 图像/png
- 图片/jpg
- 图像/jpeg
- 图像/gif
- image/svg+xml
application/octet
的原因是,您使用的库在不知道类型时会返回到该库:
更详细地解释了如何处理这种“任意二进制数据”
assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));