2

내 ionic 앱에서 인터넷/서버 파일을 다운로드하려고합니다. 나는 File Transfer Plugin을 사용하여 파일을 다운로드하려고 시도했지만 파일을 다운로드하려고 시도하지는 않았다.FileTransfer로 Cordova 및 Ionic에서 파일을 다운로드 할 수 없습니다.

플러그인에서 성공 콜백을 받지만 fileOpener2 플러그인에서 파일을 열려고하면 파일이 존재하지 않는다는 오류가 발생합니다. 파일에 대한 내 휴대 전화의 저장 공간을 모두 확인했지만 찾을 수 없습니다. PFB 코드는 내가 사용 :

var fileTransfer = new FileTransfer(); 

var imguri = "http://cdn.wall-pix.net/albums/art-space/00030109.jpg"; 
var targetPath = cordova.file.dataDirectory + "testImage.jpg"; 
fileTransfer.download(
imguri, 
targetPath, 
function(entry) { 
    console.log("download complete - Internal URL: " + entry.toInternalURL()); 
    console.log("download complete - Full Path: " + entry.fullPath); 

          $cordovaFileOpener2.open(entry.fullPath, 'image/jpeg').then(function() { 
         // file opened successfully 
         console.log("File opened successfully!"); 
        }, function(err) { 
         // An error occurred. Show a message to the user 
         console.log(JSON.stringify(err)); 
        }); 



}, 
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: { 
     "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" 
    } 
} 
); 

을 $ cordovaFileOpener2.open, 난 매개 변수로 entry.toInternalURL을 주면, 나는이 오류가 얻을 -> /data/data/com.echidna이 포함되어 구성 루트를 찾는 데 실패합니다. foodreview/files/testImage.jpg

$ cordovaFileOpener2.open에서 매개 변수로 entry.fullPath를 입력하면이 오류가 발생합니다. -> { "상태": 9, "메시지": "파일을 찾을 수 없음"}

내 파일 관리자에서 testImage.jpg 파일을 검색했는데 파일을 찾을 수 없습니다. 파일이 처음에는 다운로드되지 않았다는 것을 의미합니다. 그렇다면 성공 콜백은 어떻게 시작 되었습니까?

답변

1

Android 6.0 이상 버전의 앱에 필요한 새로운 사용자 권한 인 것 같습니다. 파일 플러그인은 사용자에게 저장 영역 액세스를 요청하지 않습니다. 이것은 응용 프로그램에서 먼저 요청해야하며 다른 플러그인에서 처리 할 수 ​​있습니다. 이것에 대한 몇 가지 플러그인이 있지만 나는 https://github.com/NeoLSN/cordova-plugin-android-permission을 사용하고 있으며 이것은 나를 위해 작동합니다!

다운로드하기 전에 저장소에 대한 쓰기 권한이 있는지 확인하십시오. 그렇지 않은 경우 권한을 요청하십시오 (권한 확인 및 요청은 위 링크의 플러그인에서 처리됩니다). 액세스 권한이 있으면 원하는 파일을 다운로드하십시오!

건배!

0

대신 비공개로 파일을 저장하고 허용하지 않습니다

file.dataDirectory 

의 파일 관리자는 공공 등이

사용

file.externalDataDirectory 

저장 파일을 읽고 다른 수 있도록하기 위해 열려는 앱

외부 DataDirecto와 혼동하지 마십시오. (SD 카드)로 장치 내부 메모리 만 사용

관련 문제