读取"文件"对象的内容?

JCO*_*611 12 javascript drag-and-drop file

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

在这里,玩这个小提琴.将任何文件拖到框中并使用该变量file.

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

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

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("returnRawPostData.php");
ajaxRequest.send(file);
Run Code Online (Sandbox Code Playgroud)

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

JCO*_*611 30

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

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

read.readAsBinaryString(file);

read.onloadend = function(){
    console.log(read.result);
}
Run Code Online (Sandbox Code Playgroud)

哪里read.result保存文件的内容.


小智 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/

在上传到服务器之前,它们都通过JS/HTML操作"删除"文件.(例如图片调整大小等)我希望它有所帮助.