目前我有一个使用 jQuery 和 的拖放解决方案FileReader
,它适用于 Chrome 和 Firefox。我使用readAsDataURL
获取要上传的图像的数据 URI,然后将数据 POST 到 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
POST 数据 URI。我还检查了可以支持的浏览器FileReader
:
$.fn.initUpload = function() {
return (window.FileReader) ? this.initDnD() : this.addClass('disabled');
}
哪里initDnD()
有前面的例子。
对于这.disabled
门课,我正在<input type="file" />
使用 Safari/IE。有什么方法可以获取用户选择的文件并立即将其转换为 Safari/IE 上的数据 URI?我之所以这么问,是因为我宁愿重用我的 PHP 脚本,它将数据 URI 保存为图像。