Chrome FileReader

匿名 (未验证) 提交于 2019-12-03 08:28:06

问题:

Can someone give me an example of using the FileReader API go get contents of a file in chrome?

It seems to be returning undefined for me.

   FileReader Test 

回答1:

My problem was that I assumed FileReader was sychronous. Here is the right way to do it. If you are on chrome, this code has to be running on a server (localhost or on a site). It won't work with a local file.

   FileReader that works! 


回答2:

The File API FileReader object operates the same way in Chrome as it does in FireFox, Opera, or Internet Explorer 10 (Yup, works in IE).

Simple Example

You start by declaring a new instance of the reader:

var reader = new FileReader(); 

Define your callbacks for its various events:

reader.onloadend = function( ){     document.body.style.backgroundImage = "url(" + this.result + ")"; } 

And then pass it something to read:

reader.readAsDataURL( file ); 

Fiddle: http://jsfiddle.net/jonathansampson/K3A9r/

Handling Multiple Files

When you're working with multiple files, things are a bit different. While it's clear we need to cycle over the resulting FileList, we'll also need to use a closure to prevent file data from getting tampered with over numerous iterations:

Fiddle: http://jsfiddle.net/jonathansampson/jPTV3/

Feature Detection

Although FileReader is available in nearly all modern browsers, you still want to be sure you don't cause any ruckus for users on older browsers. Prior to using the FileReader, be sure to check the window object for its presence:

if ( window.FileReader ) {     // Safe to use FileReader } 

Running Locally, From Chrome

I should note that running this in a file:/// path in Chrome will result in a broken experience. By default, current versions of Chrome don't permit file:/// pages to access other files. You can change this behavior loading Chrome with the --allow-file-access-from-files flag.

Note, this method will only permit file access for files on the instance of the browser it was opened with. If you want this to be the case for all browser instances into the future, you could modify the shortcut from your desktop. Simply right-click the Chrome shortcut, and go to properties. Next, add the flag to the end of the target.



文章来源: Chrome FileReader
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!