[ https://issues.apache.org/jira/browse/CB-9680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Shakhnazarov resolved CB-9680. ------------------------------------- Resolution: Invalid [~dcp3450], please reopen if it is still an issue. > Cordova File Transfer creates the empty file then stops > ------------------------------------------------------- > > Key: CB-9680 > URL: https://issues.apache.org/jira/browse/CB-9680 > Project: Apache Cordova > Issue Type: Bug > Components: Plugin File Transfer > Affects Versions: 1.2.0 > Environment: Windows 8.1 Using ngCordova > Reporter: David Powell > Labels: angularjs, file-transfer, ngCordova > > I have an object with file data I generate in a function that's structured > like this: > fileData[0]['location'] = "/path/to/save/to/" > fileData[0][0] = "http://fileurl.com" > fileData[1]['location'] = "/path/to/save/to/" > fileData[1][0] = "http://fileurl.com" > fileData[2]['location'] = "/path/to/save/to/" > fileData[2][0] = "http://fileurl.com" > ... > There's about 188 in total right now. > I run a second function that I pass the object to that starts from the bottom > up, extracts the location, creates the directory, then passes data to a > function to process the download. Once the download is complete it's supposed > to remove the current item from the object, send the object back to the > previous function and repeat until the object is empty. > function startDownload(fs, instlData) { > delete instlData.__proto__; > var currentLoc = getObjSize(instlData) - 1; > var fileUrl = instlData[currentLoc][0]; > var fileLoc = instlData[currentLoc]['location']; > var fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); > var filePath = fs.winpath + fileLoc + '/'; > fs.root.getDirectory("/" + fileLoc, { create: true }, function (dirEntry) > { > downloadFile(fileUrl, filePath, fileName, fs, instlData, currentLoc); > }, function (err) { console.log(err); }); > } > function downloadFile(fileUrl, filePath, fileName, fs, instlData, currentLoc) > { > var fileLoc = filePath + fileName; > $cordovaFileTransfer.download(encodeURI(fileUrl), fileLoc, {}, true) > .then(function (result) { > console.log('success'); > console.log(instlData); > delete instlData[currentLoc]; > startDownload(fs, instlData); > }, function (err) { > console.log('error'); > console.log(instlData); > console.log(err); > delete instlData[currentLoc]; > startDownload(fs, instlData) > }, function (progress) { > console.log('process'); > console.log(progress); > }); > } > }, false); > I'm running everything on deviceready per the docs. I've ran console.log() on > the variables and all the urls are correct. > fs.root.getDirectory("/" + fileLoc, { create: true }, function (dirEntry) > creates the directory as expected and > $cordovaFileTransfer.download(encodeURI(fileUrl), fileLoc, {}, true) creates > the empty placeholder file but it's never written to. As a matter of fact, > nothing happens. No error, not process log, nothing. It doesn't even iterate > to the next item... just stops. > If I provide anything that's not a URL (such as just removing "http://" from > the file url) it will iterate through all the items, create all the > placeholders, and create all the directories. Obviously the file is empty > because it's not a valid url. > I even tried the test file in the ngCordova example > (http://cdn.wall-pix.net/albums/art-space/00030109.jpg) -- 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