目前我有一个使用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
课程,我会回到Safari {IE的<input type="file" />
。我有什么方法可以获取用户选择的文件并立即将其转换为Safari / IE上的数据URI吗?我只是问这个,因为我宁愿重用我的PHP脚本来保存数据URI作为图像。