[ 
https://issues.apache.org/jira/browse/CB-6994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14161874#comment-14161874
 ] 

ASF GitHub Bot commented on CB-6994:
------------------------------------

Github user sgrebnov commented on a diff in the pull request:

    https://github.com/apache/cordova-plugin-file/pull/54#discussion_r18519036
  
    --- Diff: src/windows/FileProxy.js ---
    @@ -518,36 +518,69 @@ module.exports = {
             if (data instanceof ArrayBuffer) {
                 data = Array.apply(null, new Uint8Array(data));
             }
    -        
    -        var writePromise = isBinary ? 
Windows.Storage.FileIO.writeBytesAsync : Windows.Storage.FileIO.writeTextAsync;
     
    -        
             fileName = fileName.split("/").join("\\");
     
    -
             // split path to folder and file name
             var path = fileName.substring(0, fileName.lastIndexOf('\\')),
                 file = fileName.split('\\').pop();
    -        
     
             getFolderFromPathAsync(path).done(
                 function(storageFolder) {
                     storageFolder.createFileAsync(file, 
Windows.Storage.CreationCollisionOption.openIfExists).done(
                         function(storageFile) {
    -                        writePromise(storageFile, data).
    -                            done(function () {
    -                                win(data.length);
    -                            }, function () {
    -                                fail(FileError.INVALID_MODIFICATION_ERR);
    -                            });
    -                    }, function() {
    +                        if (data instanceof Blob || data instanceof File) {
    +                            
storageFile.openAsync(Windows.Storage.FileAccessMode.readWrite).done(
    +                                function (output) {
    +                                    var input = data.msDetachStream();
    --- End diff --
    
    1. in case of data is File it fails since File does not have msDetachStream 
method
    2. I would also do (detachStream || msDetachStream) so that it will work in 
future versions


> Windows 8 does not save big file transferred using Blob
> -------------------------------------------------------
>
>                 Key: CB-6994
>                 URL: https://issues.apache.org/jira/browse/CB-6994
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File, Windows 8
>    Affects Versions: 3.5.0
>            Reporter: Maxime LUCE
>            Assignee: Maxime LUCE
>             Fix For: 3.6.0
>
>
> When trying to save Blob using FileWriter.write method, if the blob's size is 
> too high, we get a stack overflow exception during the conversion of the blob 
> into an basic array.
> WinRT (WinJS) provide a method to write Blob directly to the filesystem. It 
> uses Streams so it's safe for memory.
> More info at :
> http://code.msdn.microsoft.com/windowsapps/Blob-Sample-0e35889e/sourcecode?fileId=43594&pathId=962515806
> Method : writeBlobToFile



--
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

Reply via email to