You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by GitBox <gi...@apache.org> on 2018/08/22 14:33:23 UTC

[GitHub] lucabro81 opened a new issue #244: File created for android are always empty

lucabro81 opened a new issue #244: File created for android are always empty
URL: https://github.com/apache/cordova-plugin-file/issues/244
 
 
   I described the issue here:
   https://stackoverflow.com/q/51969064/1619070
   
   When I try to write a file with a correct blob nothing happen, I can see the file created but is empty and no error or exception or success event is fired
   
   these are the function I've used
   
   ```
   class FileHelper {
   
       public file:File;
   
       constructor() {
           this.file = new File();
       }
   
       public save(filename:string, dir:string, data:any):Promise<any> {
   
           console.log("FileHelper.save filename", filename);
           console.log("FileHelper.save dir", dir);
           console.log("FileHelper.save data", data);
   
           return this.file
                      .resolveDirectoryUrl(this.file.cacheDirectory)
                      .then((dir:DirectoryEntry) => {
                          this.onResolveDirectoryUrlSuccess(dir, filename, data, this.fileWriter, {
                              create: true,
                              exclusive: false
                          })
                      })
                      .catch((error:any) => {
                          console.log("FileHelper.save error", dir, filename, error);
                      });
       }
   
       private onResolveDirectoryUrlSuccess(dir:DirectoryEntry,
                                            filename:string,
                                            data:LanguageDataResponseVO,
                                            file_action:(args:Array<any>) => void,
                                            flags:any):void {
           console.log("FileHelper.onResolveDirectoryUrlSuccess", dir, filename);
           this.gotFileSystem(dir, filename, file_action, flags, data);
       }
   
       private gotFileSystem(dir:DirectoryEntry,
                             filename:string,
                             action:Function,
                             flags:{ create:boolean, exclusive?:boolean },
                             json?:LanguageDataResponseVO):void {
   
           console.log('FileHelper.gotFileSystem - nome file: ' + filename);
   
           dir.getFile(filename, flags,
               (fileEntry) => {
                   console.log("FileHelper.gotFileSystem getFile succes", dir, filename, fileEntry);
                   action.call(this, [fileEntry, json]);
               },
               (error) => {
                   console.log("FileHelper.gotFileSystem getFile error", dir, filename, error);
               }
           );
       }
   
       private fileWriter(args:Array<any>) {
   
           console.log('App.LanguageService.fileWriter');
   
           let fileEntry:FileEntry = args[0];
           let json:string = args[1];
   
           let blob = new Blob(["text to save"], {type: 'text/plain'});
   
           fileEntry.createWriter(
               (file:any) => {
                   console.log('App.LanguageService.SUCCESS', blob);
   
                   file.onwritestart = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onwritestart - success file_name', fileEntry.name, event);
                   };
                   /**
                    * Handler for progress events.
                    */
                   file.onprogress = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onprogress - success file_name', fileEntry.name, event);
                   };
                   /**
                    * Handler for write events.
                    */
                   file.onwrite = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onwrite - success file_name', fileEntry.name, event);
                   };
                   /**
                    * Handler for abort events.
                    */
                   file.onabort = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onabort - success file_name', fileEntry.name, event);
                   };
                   /**
                    * Handler for error events.
                    */
                   file.onerror = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onerror - success file_name', fileEntry.name, event);
                   };
                   /**
                    * Handler for write end events.
                    */
                   file.onwriteend = (event: ProgressEvent) => {
                       console.log('FileHelper.fileWriter onwriteend - success file_name', fileEntry.name, event);
                   };
   
                   file.write(blob);
               },
               (error) => {
                   console.log('App.LanguageService.FAIL', error);            }
           );
       }
   
   }
   ```
   
   This is android behaviour, under iOS everything works correctly

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org