로컬 파일 시스템에 파일을 다운로드 중입니다. fileSystem.root.getFile을 통해 빈 파일을 성공적으로 만들 수 있지만 동일한 경로를 사용하더라도 FILE_NOT_FOUND_ERR로 fileTransfer.download가 실패합니다. //MyDir/test.pdf
:PhoneGap FileTransfer.download는 FileSystem과 다른 경로를 제공합니다.
문제는 내 파일이 //sdcard/MyDir/test.pdf
에서 만든 (나는 ADB 쉘을 사용하여 확인)하지만 fileEntry이 sdcard에없는 경로 반환되고 있다는 점이다. fileTransfer.download가이 경로와 함께 실패합니다. 상대 경로 MyDir/test.pdf
도 실패합니다.
나는 그것이 I (특히, FileTransfer.java에 resourceApi.mapUriToFile
호출이 성공)을 FILE_NOT_FOUND_ERR을 피할 수에 'sdcard에'와 함께 전체 경로를 하드 코딩하지만 나는 CONNECTION_ERR을 얻고 콘솔이 표시되면 "파일 플러그인 대표 할 수 다운로드 경로 ". (FileTransfer.java에서 filePlugin.getEntryForFile
호출은 null을 반환하고 경로에 'sdcard'가 맘에 들지 않는다고 가정합니다.)
fileTransfer.download에서 대상 경로를 지정하는 더 좋은 방법이 있습니까?
var downloadUrl = "http://mysite/test.pdf";
var relativeFilePath = "MyDir/test.pdf"; // using an absolute path also does not work
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
fileSystem.root.getFile(relativeFilePath, { create: true }, function (fileEntry) {
console.log(fileEntry.fullPath); // outputs: "//MyDir/test.pdf"
var fileTransfer = new FileTransfer();
fileTransfer.download(
downloadUrl,
/********************************************************/
/* THE PROBLEM IS HERE */
/* These paths fail with FILE_NOT_FOUND_ERR */
//fileEntry.fullPath, // this path fails. it's "//MyDir/test.pdf"
//relativeFilePath, // this path fails. it's "MyDir/test.pdf"
/* This path gets past the FILE_NOT_FOUND_ERR but generates a CONNECTION_ERR */
"//sdcard/MyDir/test.pdf"
/********************************************************/
function (entry) {
console.log("Success");
},
function (error) {
console.log("Error during download. Code = " + error.code);
}
);
});
});
차이점이 있다면 Android SDK 에뮬레이터를 사용하고 있습니다.
시도합니다. 또한 파일을 다운로드하고 저장하려면 다운로드하기 전에 파일을 만드는 것이 중요하지 않습니다. – Regent
@Regent fileSystem.root.fullPath는'/'이므로 도움이되지 않습니다. – Keith