读取“文件”对象的内容?

时间:2011-03-05 02:54:36

标签: javascript file drag-and-drop

所以我有一个“文件”对象(通过处理从桌面拖放文件来检索)。我可以使用ajax将文件发送到服务器,然后将它们返回给javascript来处理它们。但是可以在不做所有这些的情况下阅读它的内容吗?

Here, play around with this fiddle.将任何文件拖到框中并使用变量file

我已经尝试过这个对象的所有方法......没有运气。你能获得刚刚拖入浏览器的文件内容吗?

PS:我会将文件发送到服务器,如下所示:

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("returnRawPostData.php");
ajaxRequest.send(file);

我可能在上面的代码中遗漏了一些东西,但这只是因为我不再使用普通的JS来进行AJAX调用。

2 个答案:

答案 0 :(得分:25)

使用 Martin Mally 的链接(非常感谢!),我想出了这个:

var file = e.dataTransfer.files[0],read = new FileReader();

read.readAsBinaryString(file);

read.onloadend = function(){
    console.log(read.result);
}

read.result保存文件内容的位置。

答案 1 :(得分:8)

我认为这是可能的;检查这两篇文章:

  1. https://developer.mozilla.org/en/Using_files_from_web_applications
  2. http://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/
  3. 在上传到服务器之前,他们都通过JS / HTML操作“删除”文件。 (例如图片大小调整等)我希望它有所帮助。