如何在phonegap应用程序中上传设备中的文件

时间:2014-01-16 06:53:16

标签: jquery html5 cordova

您好我正在处理phonegap应用程序,我想上传我正在使用的音频文件,但它在浏览器中工作但不在设备中工作,所以你可以帮我上传并获取文件的路径。

示例

<input type="file"/>
<button id="btn">click</button>

$( document ).ready(function() {
$("#btn").click(function(){
alert($("input").val());
})
});

此示例无法在设备上运行,但在浏览器上工作,请告诉我在设备中上传文件的方法。

3 个答案:

答案 0 :(得分:2)

您无法直接在phonegGap中浏览SD卡。通过使用文件资源管理器插件,您可以上传应用程序和文件中的文件。你也可以用它来获得一条路径。 mobile-file-explorer-with-phonegapcordova-and-jquery-mobile-part

plugins ScreenShot plugins ScreenShot

答案 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