我一直在尝试重新实现一个HTML5图像上传器,就像Mozilla Hacks网站上的那个,但它适用于WebKit浏览器。该任务的一部分是从canvas对象中提取图像文件,并将其附加到FormData对象中以便上传。
问题是,虽然canvas有toDataURL函数来返回图像文件的表示,但FormData对象只接受file API中的file或Blob对象。
Mozilla解决方案在画布上使用了以下仅限firefox的功能:
var file = canvas.mozGetAsFile("foo.png");
...这在WebKit浏览器上是不可用的。我能想到的最佳解决方案是找到某种方法将Data URI转换为File对象,我认为这可能是File API的一部分,但我无法找到这样做的方法。
这可能吗?如果没有,有什么替代方案吗?