Hi Symbrosson, thanks for pointing me in a good direction.
I was able to come up with some codes but just can't get
it to download a file. Can you please inspect to see what I may be
doing wrong in my code? Code is below.
Thanks.
-Nii
---------------
// This code downloads a file
function downloadfile_ds(SourceFileURL, FileToDownld, DestFolder, DestFileName, displayfilename) {
try{
//alert('111111');
//cordova.file.applicationDirectory + "pl/foldername"; //"///storage/ emulated/0/DCIM/myFile";
var SaveDestFileAs = DestFolder+ DestFileName;
ShowSnackbar( "Download started. "+ FileToDownld);
//var fileName = 'pdf.pdf';
var xhr = new XMLHttpRequest();
xhr.onprogress = function(pe) {
console.log('progress');
if (pe.lengthComputable) {
ShowSnackbar((pe.loaded / pe.total) * 100);
}
};
xhr.onload = function(e) {
if (this.status == 200) {
alert('loaded..');
var blob = this.response;
//var blobUrl = window.URL.createObjectURL(new Blob([blob], {type: blob.type}));
var blobobj = new Blob([blob], {type: blob.type});
writeFile(blobobj, DestFileName);
ShowSnackbar("Completed: " + displayfilename );
loadlibrary();
loader('hide');
return DestFolder + "/" + FileToDownld;
}
};
/*xhr.onerror= function(err){
ShowSnackbar("Error: " + err.toString() + " " + displayfilename );
loadlibrary();
loader('hide');
};*/
xhr.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200) {
alert('this.responseText ..'+this.responseText);
loader('hide');
loadlibrary();
return;
}};
//alert(' SourceFileURL '+ SourceFileURL);
xhr.open("get", SourceFileURL, true);
//xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.overrideMimeType("application/octet-stream");
//xhr.responseType = "blob";
xhr.responseType = "arraybuffer";
//xhr.onerror=errorFunc;
xhr.timeout=25000;
xhr.send();
alert('444444');
//return;
}catch (e) {
alert("Error "+ e );
loader("hide");
return;
}
}
//Code for writing file
function writeFile(blob, fileName) {
//var type = window.TEMPORARY;
//var size = 5*1024*1024;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, successCallback, errorCallback);
function successCallback(fs) {
fs.root.getFile(fileName, {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
//alert('Write completed.');
};
fileWriter.onerror = function(e) {
//alert('Write failed: ' + e.toString());
};
//var blob = new Blob(["Lorem Ipsum"], {type: "text/plain"});
fileWriter.write(blob);
}, errorCallback);
}, errorCallback);
}
function errorCallback(error) {
alert("ERROR: " + error.code)