【发布时间】:2014-06-19 06:34:39
【问题描述】:
如果我直接用
指定路径,我可以下载图像file:///storage/sdcard0/
如何将图像保存到我的应用程序中的一个文件夹中?我尝试了this 方法来设置应用程序路径,但它对我不起作用。
这是我目前使用的,如果你想保存和图像到 sdcard,它可以工作:
var fileName = "myImage.png";
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://my.url.to.image/myImage.png");
var filePath = "file:///storage/sdcard0/uploads/myImage.png";
fileTransfer.download(
uri,
filePath,
function(entry) {
alert("download complete: " + entry.fullPath);
console.log("download complete: " + entry.fullPath);
},
function(error) {
alert("download error source/target/code:\n" + error.source +" \n||| "+error.target+" \n||| "+error.code);
console.log("download error source/target/code " + error.source+" / "+error.target+" / "+error.code);
}
);
如果我使用这个功能:
function getPhoneGapPath() {
'use strict';
var path = window.location.pathname;
var phoneGapPath = path.substring(0, path.lastIndexOf('/') + 1);
return phoneGapPath;
}
我得到 /android_asset/www/。如何获得应用程序的正确路径?
该应用正在使用 AngularJS,并且未在 onDeviceReady 中引导(在我之前的开发人员就是这样做的,现在将其更改为 this 之类的东西超出了我的能力(尝试过但没有用)。
我可以参考的另一个问题是here。
我也试过this、this、this 和this,但没有一个对我有用。我得到了完整路径的“”,最近我设法用 .toURL() 打印了路径,它是“cdvfile://localhost/persistent”。 如果我使用上面的下载代码现在也可以使用
filePath = "cdvfile://localhost/persistent/MyAppID/uploads/myImage.png";
但这会在 /storage/sdcard0 中创建文件夹 /MyAppID/uploads ,这又很糟糕。我的应用需要使用
获取图像<img src="uploads/myImage.png" alt="myimg"/>
另一个有用的链接是here,但它对如何写入您自己的应用程序的预先创建的文件夹没有任何帮助。
编辑:据我所知,您不能在自己的应用程序中编写(只读)。这就是为什么我尝试使用
引用来自 sdcard 的图像<img src="file:///storage/sdcard0/Android/data/com.app.my/cache/myImage.png" alt="myimg"/>
这行得通! :) 不幸的是,这是硬编码的并且不好,因为其他手机可能有不同的持久位置。 如果我尝试
<img src="cdvfile://localhost/persistent/Android/data/com.app.my/cache/myImage.png" alt="myimg"/>
这并没有引用图片:/(它确实在 storage/sdcard0/Android/data/com.app.my/cache/ 上下载了它)
【问题讨论】:
标签: android angularjs cordova download phonegap-build