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

Nicolas Leclerc commented on CB-5790:
-------------------------------------

Hmm, i've looked into the code but there's too much code for my objective c 
skills (never really did any).

I did however see that even if the NSData thing was working, the upload code 
wouldn't have.
The "chunking" wouldn't really have helped since one of the chunks is the whole 
content of the file, as in:
bq. {{NSData* chunks[] = {postBodyBeforeFile, fileData, postBodyAfterFile};}}

I would have tackled it myself but as i said i would spend an eternity doing it 
poorly...

> iOS file-transfer plugin fails to upload large files (> 200MB)
> --------------------------------------------------------------
>
>                 Key: CB-5790
>                 URL: https://issues.apache.org/jira/browse/CB-5790
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS, Plugin File Transfer
>    Affects Versions: 3.3.0
>         Environment: iOS 7.0.4 on an non retina iPad mini and an iPad 3.
> Plugin v0.4.0
>            Reporter: Nicolas Leclerc
>
> While trying to upload large video files (> 200MB) using the file-transfer 
> plugin upload function, i get a FILE_NOT_FOUND_ERR error.
> Turns out the real error is as follows:
> {quote}
> Error opening file 
> /var/mobile/Applications/1F3C6CCF-D37B-45C0-B6D2-839FA5F7C163/Documents/20140112214958-rally-vendome-aaa.session/vendome_aaa_mime_1.MOV:
>  Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be 
> completed. (Cocoa error 256.)" UserInfo=0x176ce440 
> {NSFilePath=/var/mobile/Applications/1F3C6CCF-D37B-45C0-B6D2-839FA5F7C163/Documents/20140112214958-rally-vendome-aaa.session/vendome_aaa_mime_1.MOV,
>  NSUnderlyingError=0x176cbac0 "The operation couldn’t be completed. *Cannot 
> allocate memory*"}
> {quote}
> Smaller files work fine so it would seem that the whole content of the file 
> is read into memory before uploading despite using the 
> {{NSDataReadingMappedIfSafe}} option of NSData.
> I did find some reference to the fact that ios is indeed buffering the whole 
> file into memory:
> * http://www.cimgf.com/2012/02/17/extending-nsdata-and-not-overriding-dealloc/
> * 
> http://stackoverflow.com/questions/16787899/ios-load-large-file-use-memory-mapping-failed



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to