Jquery 使用IE/Safari将图像上载为数据URI

Jquery 使用IE/Safari将图像上载为数据URI,jquery,filereader,data-uri,Jquery,Filereader,Data Uri,目前我有一个使用jQuery和FileReader的拖放解决方案,它可以与Chrome和Firefox一起使用。我使用readAsDataURL获取要上传的图像的数据URI,然后将数据发布到PHP,作为服务器上的文件写入 我已经大量压缩了代码,但过程如下所示: this.bind('drop', function(evt) { evt.preventDefault(); evt.stopPropagation(); var files = evt.originalEve

目前我有一个使用jQuery和
FileReader
的拖放解决方案,它可以与Chrome和Firefox一起使用。我使用
readAsDataURL
获取要上传的图像的数据URI,然后将数据发布到PHP,作为服务器上的文件写入

我已经大量压缩了代码,但过程如下所示:

this.bind('drop', function(evt) {
    evt.preventDefault();
    evt.stopPropagation();

    var files = evt.originalEvent.dataTransfer.files;
    var file = files[0];
    var reader = new FileReader();

    reader.readAsDataURL(file);
});
然后,我有一个单独的函数调用
$.ajax
来发布数据URI。 我还检查了支持
FileReader
的浏览器:

$.fn.initUpload = function() {
    return (window.FileReader) ? this.initDnD() : this.addClass('disabled');
}
其中
initDnD()
有前面的示例


对于禁用的
.disabled
类,我使用的是Safari/IE的
。是否有任何方法可以获取用户选择的文件并立即将其转换为Safari/IE上的数据URI?我之所以问这个问题,是因为我更愿意重用将数据URI保存为图像的PHP脚本。

快速浏览MDN,就会发现safari和IE8支持这一点。虽然我不能很快地为您分解一些代码,但他们已经创建了一些代码,这些代码应该可以指导您完成工作所需的步骤。独立示例没有链接到任何演练?它显示您可以将文件发布到某个对象并检索数据URI,但这需要页面转换;有什么方法可以异步实现这一点吗?当然,通过使用AJAX。问题是我不能发送文件的帖子,我需要先将它们转换为数据URI。上面的示例似乎需要将文件上载到服务器,然后接收数据URI。我试图绕过典型的上传过程,因为我试图异步上传这些文件。