[ https://issues.apache.org/jira/browse/CB-9810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Ginchereau resolved CB-9810. ---------------------------------- Resolution: Invalid > Mismatch between results of resolveLocalFileSystemURL and FileReader, throws > error. > ----------------------------------------------------------------------------------- > > Key: CB-9810 > URL: https://issues.apache.org/jira/browse/CB-9810 > Project: Apache Cordova > Issue Type: Bug > Components: Plugin File > Affects Versions: 3.0.0 > Environment: Android SDK 22 > Tested on an LG Nexus, Android 5.0.1 > Reporter: Leonel Gayard > > h2. The problem > When reading a file with {{resolveLocalFileSystemURL}} followed by > {{FileReader.readAsText}}, the latter fails, with the error message > {{Uncaught TypeError: Failed to execute 'readAsText' on 'FileReader': > parameter 1 is not of type 'Blob'.}} > cordova-plugin-file provides these functions, which match the W3C APIs for > File and File System: > [resolveLocalFileSystemURL|http://www.w3.org/TR/2011/WD-file-system-api-20110419/#widl-LocalFileSystem-resolveLocalFileSystemURL] > and [FileReader|http://www.w3.org/TR/FileAPI/#APIASynch]. > h2. Possible causes ? > It seems the fileEntry object is created inside the Java code, as a > JSONObject (method > [Filesystem#makeEntryForURL|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/src/android/Filesystem.java#L61]; > therefore it does not implement the Javascript interfaces File or Blob. > h2. Possible solution ? > Looking at the source of > [FileReader.js|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/www/FileReader.js#L130], > it seems the FileReader implemented by the plugin delegates to the > FileReader of the web view (at least, that's what the name of the variable > suggests, `realReader`. > Also, the function in file FileReader.js [seems to rely on the attribute > localURL|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/www/FileReader.js#L88] > of the file object, which is not part of the API. > I made a quick hack on my local installation, to remove the call to the > "real" FileReader, and use the one written in Java; this fixed the issue, and > makes it possible to use FileReader. > Tested on Android SDK 22, on an LG Nexus, Android 5.0.1. > h2. Example > The repo at https://github.com/leonelag/proto-file-plugin has an example of > an application trying to use the plugin to read and write files, and fails on > Android. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org