I have a problem with downloading a pdf from an external url and save it on the android device. So far I get these errors:
download error source http://bbg.co.tz/wp-content/uploads/2015/03/CC008962_Tanzania-tax-briefing-transfer-pricing_18-11-15.pdf
index.js:227 download error target /Phone/Download
index.js:228 upload error code1
And here is my code:
function bbgDownload(bbgURL)
{
var fileTransfer = new FileTransfer();
var uri = encodeURI(bbgURL);
fileURL='/Phone/Download'
fileTransfer.download(
uri,
fileURL,
function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
console.log("Please show this URL " + bbgURL);
}
Append a filename to your fileURL variable. This worked for me, for example:
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://bbg.co.tz/wp-content/uploads/2015/03/CC008962_Tanzania-tax-briefing-transfer-pricing_18-11-15.pdf");
var fileURL = "cdvfile://localhost/persistent/mydir/myPdfFile.pdf";
fileTransfer.download(
uri,
fileURL,
function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
Related
I am downloading a file from the server, it returns in Blob format. I have used the following piece of code to convert blob to URL.
const blob = new Blob([data], { type: 'application/pdf' });
const url= window.URL.createObjectURL(blob);
After that, I have used Cordova-File-Transfer-Plugin code to Download that File. Code provided below:
downloadOverMobile(url){
var fileTransfer = new FileTransfer();
let fileURL = 'cdvfile://localhost/persistent/Download/Invoice.pdf';
var uri = encodeURI(url);
fileTransfer.download(uri,fileURL,
function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("download error code " + error.code);
},
false,
{
headers: {
}
}
);
}
I am getting the following response:
download error source blob:file:///d1339351-7d29-4dcd-bba6-0b037003c886
download error target
cdvfile://localhost/persistent/Download/Invoice.pdf
download error code 2
I am using angular 4 and Cordova 8.1.2. Can Anyone tell me what am I missing?
Hello I should save images on the device when the user clicks the download button.
I'm using the cordova file transfer plugin, but I can not save images in the device gallery.
$("#downloadFile").click(function()
{
var fileTransfer = new FileTransfer();
var uri = encodeURI("www.mysite.com/image.jpg");
var fileURL = cordova.file.????;
fileTransfer.download(
uri, fileURL, function(entry)
{
alert("download complete: " + entry.toURL());
},
function(error)
{
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("download error code" + error.code);
},
false,
{
headers:
{
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
});
});
Are there any other ways to save an image using cordova?
Thanks, ciao
https://www.npmjs.com/package/cordova-plugin-save-image
You should use this plugin
function(entry){
window.cordova.plugins.imagesaver.saveImageToGallery(uri, function(success){}, function(error){});
}
nativePathToJpegImage is uri.
I can download files with phonegap api. (I use cordova 2.9.1)
But only if I know the url, for example: http://domain.com/url/to/img/moo.png.
But in my server I want to read the binary data of the file and send the binary string to
the phonegap app.
Is this possible to achieve this???
Here is the code:
var fileTransfer = new FileTransfer();
// var uri = encodeURI("http://zielekols.com/Bilder/logo.png");
var uri = encodeURI('url/to/get');
fileTransfer.download(
uri,
'/storage/emulated/0/moo.pdf',
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false
);
Despite the many examples found on the documentation or in this forum, I can't find a way to download a file using Cordova...
First, I get the rootFS:
function gotFS(fileSystem) {
console.log("got filesystem");
// save the file system for later access
console.log(fileSystem.root.fullPath);
// displays "/" on desktop
// displays "file:///mnt/sdcard" on android with SD Card
window.rootFS = fileSystem.root;
}
document.addEventListener('deviceready', function() {
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function(){
console.log("error getting LocalFileSystem");
});
}, false);
The upload script:
// Creating the image directory
imageDir = rootFS.getDirectory("imagesContent", {create: true},
function(){
// Success
},
function(error){
console.log("ERROR getDirectory");
console.log(error);
}
);
// Creating and Downloading the image
imgFile = imageDir.getFile(filename, {create: true, exclusive: true},
function (){
var localPath = rootFS.fullPath+'/imagesContent/'+filename;
fileTransfer = new FileTransfer();
fileTransfer.download('http://example.com/images/'+filename,
localPath,
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log(error);
console.log('download error: ' + error.code);
console.log("download error source " + error.source);
console.log("download error target " + error.target);
}
);
},
function (error){
console.log("ERROR getFile");
console.log(error);
}
);
I get this error in the console:Uncaught TypeError:
Cannot call method 'getFile' of undefined
The uri is authorized in config.xml.
I think that the problem is with this line: imageDir = rootFS.getDirectory("imagesContent", {create: true},function(), function()) I don't think the call to getDirectory is supposed to actually return the directory name, like what you expect, which is why your imageDir object is undefined.
It might be easier for you to use the FileTransfer.download() method to download stuff from your server: http://docs.phonegap.com/en/edge/cordova_file_file.md.html#FileTransfer
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");
fileTransfer.download(
uri,
filePath,
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");
fileTransfer.download(
uri,
filePath,
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
I use it but success and download is completed but not found image in y app
I am building a android applikation using Phonagap and jquery mobile.
In the app I need to download some mp3-files, but it won't work
Here is my function:
function downloadFile() {
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://media.domain.com/myfile.mp3");
var filepath = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
fileTransfer.download(
uri,
filePath,
function(entry) {
console.log("download complete: " + entry.fullPath);
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
}
);
}
What am I doing wrong..?
remoteFile does not appear to be set.