【发布时间】:2012-03-31 06:10:49
【问题描述】:
我想从 sdcard 中选择一个文件并将其上传到服务器。是否可以通过phonegap访问android中的sdcard,就像我们从图库中选择图像并上传一样。我浏览了示例,但所有示例都指定了文件名,例如:mnt/sdcard/read.txt。但我只想转到 sdcard 以便用户可以选择自己的文件。
【问题讨论】:
标签: file-upload cordova android-sdcard
我想从 sdcard 中选择一个文件并将其上传到服务器。是否可以通过phonegap访问android中的sdcard,就像我们从图库中选择图像并上传一样。我浏览了示例,但所有示例都指定了文件名,例如:mnt/sdcard/read.txt。但我只想转到 sdcard 以便用户可以选择自己的文件。
【问题讨论】:
标签: file-upload cordova android-sdcard
U can easily do that its very easy
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccessUpload, fail);
function onFileSystemSuccessUpload(fileSystem) {
// get directory entry through root and access all the folders
var directoryReader = fileSystem.root.createReader();
// Get a list of all the entries in the directory
directoryReader.readEntries(successReader,fail);
}
function successReader(entries) {
var i;
for (i=0; i<entries.length; i++) {
//alert(entries[i].name);
if(entries[i].isDirectory==true)
{
var directoryReaderIn = entries[i].createReader();
directoryReaderIn.readEntries(successReader,fail);
}
if(entries[i].isFile==true)
{
entries[i].file(uploadFile, fail);
}
}
};
function uploadFile(file) {
var target=""; //the url to upload on server
var ft = new FileTransfer(),path = "file://"+ file.fullPath,name = file.name;
ft.upload(path, target, win, fail, { fileName: name });
// var ft = new FileTransfer();
//ft.upload(file.fullPath, target, win, fail, options);
function win(r) {
alert("Code = " + r.responseCode);
alert("Response = " + r.response);
alert("Sent = " + r.bytesSent);
}
function fail(error) {
alert("An error has occurred: Code = " + error.code);
}
}
【讨论】: