Hi,
I am using this plugin for getting files
when I select a pdf file from Downloads folder it is giving me uri as “content://com.android.providers.downloads.documents/document/1015”
but if i select another files like zip or png it gives me perfect path
content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Fwws.zip
content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Fopacity.png
Can anyone suggest me how do I get the path from it in the form of “file://…”.
I have tried these 2 but no success yet:
FilePath.resolveNativePath
normalizeURL
reply me if you have any solution
thanks
you need resolveLocalFilesystemUrl
from the FileManager
Plugin
Hi Aaron,
Thanks for replying,
I have used it as you suggested:
this.file.resolveLocalFilesystemUrl(uri).then((files)=>{
console.log("files",files);
}).catch((error) => { console.log("error", error) });
It still returns as:
filesystem: FileSystem {name: "content", root: DirectoryEntry}
fullPath: "/com.android.providers.downloads.documents/document/1015"
isDirectory: false
isFile: true
name: "1015"
nativeURL: "content://com.android.providers.downloads.documents/document/1015"
Which is the original url
I know from android perspective you need to get it from content provider.
+1 the same is happening in my app, only with .PDF files
EDIT 1: If you move the .pdf file outside of the Downloads folder it seems to work.
EDIT 2: 1. I downloaded the file that i choose outside of the Downloads folder 2. It was downloaded into Downloads folder, but this time i can select it. Might be this only for old pdfs?
EDIT 3: I am 90% sure this only happens with old PDF. I have downloaded some tales in pdf and these files have no problem.
EDIT 4: Suddenly started working with every pdf even if old…
This thread is a bit old, but for people coming across it now, try not to rely on file
URLs. See this post.
Did you guys figured out the solution? I have exact same problem. What @rapropos suggest does not solve the problem. I still can’t get file extension
Ok, I finally got the solution
import { FileChooser } from '@ionic-native/file-chooser';
import { FilePath } from '@ionic-native/file-path';
chooseFileForAndroid() {
this.fileChooser
.open()
.then(url => {
this.filePath.resolveNativePath(url)
.then(filePath => {
console.log(filePath);
})
.catch(err => console.log(err));
})
.catch(e => {
console.log(e);
});
}
This will give you the proper file path, file name. You will be able to get extension from it as well.
3 Likes