我一直在尝试重新实现像Mozilla Hacks网站上的 HTML5图像上传器,但它适用于WebKit浏览器.部分任务是从canvas对象中提取图像文件并将其附加到FormData对象以进行上载.
问题是虽然canvas具有toDataURL返回图像文件表示的函数,但FormData对象仅接受来自File API的 File或Blob对象.
Mozilla解决方案使用以下仅限Firefox的功能canvas:
var file = canvas.mozGetAsFile("foo.png");
Run Code Online (Sandbox Code Playgroud)
...在WebKit浏览器上不可用.我能想到的最好的解决方案是找到一种方法将数据URI转换为File对象,我认为它可能是File API的一部分,但我不能为我的生活找到一些东西.
可能吗?如果没有,任何替代方案?
谢谢.
我正在玩一个完全基于javascript的zip/unzip实用程序的想法,任何人都可以从浏览器访问.他们可以直接将他们的zip拖到浏览器中,然后让他们下载所有文件.他们还可以通过拖动单个文件来创建新的zip文件.
我知道在服务器端做它会更好,但这个项目只是为了一点乐趣.
如果我利用各种可用方法,将文件拖入浏览器应该很容易.(gmail风格)
编码/解码应该没问题.我见过一些as3 zip库,所以我相信我应该没问题.
我的问题是最后下载文件..
window.location = 'data:jpg/image;base64,/9j/4AAQSkZJR....'
Run Code Online (Sandbox Code Playgroud)
这在firefox中运行良好,但在chrome中不行.
我可以将文件嵌入到chrome中使用的图像<img src="data:jpg/image;ba.." />,但文件不一定是图像.它们可以是任何格式.
任何人都可以想到另一种解决方案或某种解决方法吗?