met*_*ate 8 javascript browser macos mime
我可以假设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(), {});
...
Run Code Online (Sandbox Code Playgroud)
我使用https://github.com/broofa/node-mime来检测MIME类型.
至少在理论上,不,你不能这样假设。
苹果是这样说的:“要获取剪贴板上当前可用的类型列表,您可以使用 ClipboardData 对象的 types 属性。该属性包含一个字符串数组,其中包含可用数据的 MIME 类型。” Webkit DOM 编程主题
至少根据 w3c,选项是:
编辑:
MIME 检测返回的原因application/octet是,当您使用的库不知道类型时,您正在使用的库会回退到该库,正如您在 test.js 文件的这一行中看到的那样:
assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
Run Code Online (Sandbox Code Playgroud)
这个答案更详细地解释了如何处理这种“任意二进制数据”。
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |