您好我正在处理phonegap应用程序,我想上传我正在使用的音频文件,但它在浏览器中工作但不在设备中工作,所以你可以帮我上传并获取文件的路径。
示例
<input type="file"/>
<button id="btn">click</button>
$( document ).ready(function() {
$("#btn").click(function(){
alert($("input").val());
})
});
此示例无法在设备上运行,但在浏览器上工作,请告诉我在设备中上传文件的方法。
答案 0 :(得分:2)
您无法直接在phonegGap中浏览SD卡。通过使用文件资源管理器插件,您可以上传应用程序和文件中的文件。你也可以用它来获得一条路径。 mobile-file-explorer-with-phonegapcordova-and-jquery-mobile-part
答案 1 :(得分:0)
我不确定您是否可以打开SD卡并选择要使用phonegap上传的文件。但是,这是获取文件夹中所有文件并将其上传到服务器的简单方法。您可以根据需要自定义它并使用它,我希望它有所帮助。
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is ready
//
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
function gotFS(fileSystem) {
fileSys = fileSystem;
}
, fsFail);
fileSys.root.getDirectory("myFolder/", {create: true, exclusive: false},
function(parent) {
folder=parent;
}
, dirFail);
//Creating a reader
var directoryReader = folder.createReader();
// Get a list of all the entries in the directory
directoryReader.readEntries(ReaderSucces,readerFail);
function ReaderSucces(entries){
var i,len;
len = entries.length;
for (i=0; i<len; i++) {
if (entries[i].isDirectory) {
var directoryReaderIn = entries[i].createReader();
directoryReaderIn.readEntries(ReaderSucces,readingFail);
}
if(entries[i].isFile==true)
{
entries[i].file(uploadFile, readingFail);
}
}
}
var fsFail = function(error) {
alert("failed with error code: " + error.code);
};
var dirFail = function(error) {
alert("Directory error code: " + error.code);
};
var readerFail = function(error) {
alert("Reading Directory error code: " + error.code);
};
var readingFail = function (error){
console.log("Reading Files error code: "+error.code);
};
}
function uploadFile(file) {
var target="http://YOUR_IP/upload.php"; //the url to upload on server
var ft = new FileTransfer();
var path = file.fullPath; //"file://"+
var name = file.name;
var ft = new FileTransfer();
ft.upload(path, encodeURI(target), win, fail, { fileName: name, fileKey: "file", mimeType:"text/plain" });
}
答案 2 :(得分:0)
在phonegap中也提供了用于读取,写入和导航文件系统层次结构的API。 您可以使用FileTransfer.upload()来实现此目的。看一下这个文档 Phonegap documentation for File