Javascript 如何使用phonegap打开android SD卡

Javascript 如何使用phonegap打开android SD卡,javascript,cordova,android-sdcard,Javascript,Cordova,Android Sdcard,大家好,我正试图将一个pdf文件上传到我的php服务器脚本中。我的pdf文件在android mobile上,它将仅在sd卡上,因此我想通过javascript使用phonegap打开android设备的sd卡。使用此 navigator.camera.getPicture(successFn, errorFn, { quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI, sourceTyp

大家好,我正试图将一个pdf文件上传到我的php服务器脚本中。我的pdf文件在android mobile上,它将仅在sd卡上,因此我想通过javascript使用phonegap打开android设备的sd卡。

使用此

navigator.camera.getPicture(successFn, errorFn, { quality: 50,
    destinationType: navigator.camera.DestinationType.FILE_URI,
    sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
    mediaType: navigator.camera.MediaType.ALLMEDIA  });
这将打开选项,您可以在其中选择文件,选择其中一个将为您提供成功文件的名称和路径fn

使用此选项

navigator.camera.getPicture(successFn, errorFn, { quality: 50,
    destinationType: navigator.camera.DestinationType.FILE_URI,
    sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
    mediaType: navigator.camera.MediaType.ALLMEDIA  });
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);
            }
}


这将打开选项,您可以在其中选择文件,选择其中一个将为您提供成功文件的名称和路径fn

请参阅我使用navigator.camera.PictureSourceType.PHOTOLIBRARY功能上传了一张图像以打开gallery,如wise我需要打开sdcard。。。我将如何做…看我做了一个图像上传,我使用navigator.camera.PictureSourceType.PHOTOLIBRARY功能打开图库,如wise我需要打开SD卡。。。我该怎么做…我需要上传一个.pdf文件,所以我只需要打开SD卡我怎么能打开没有选项只打开SD卡。用户必须导航到文件选择器中的sd卡文件夹。请看,我有一个按钮,如果我按下该按钮,它必须导航到移动sd卡…之后,用户可以选择他的文件并上传…你必须为此编写自己的phonegap插件。为了只打开sd卡内容,我需要上传一个.pdf文件,所以我只需要打开sd卡。我怎么能打开sd卡呢。用户必须导航到文件选择器中的sd卡文件夹。请看,我有一个按钮,如果我按下该按钮,它必须导航到移动sd卡…之后,用户可以选择他的文件并上传…你必须为此编写自己的phonegap插件。用于仅打开sd卡内容,如window.requestFileSystemLocalFileSystem.PERSISTENT,0,onFileSystemSuccessUpload,fail;这将打开android的SD卡。U将获得文件系统访问权限。然后使用var directoryReader=fileSystem.root.createReader;u将获得对目录条目对象的访问权,并使用该访问权访问设备文件系统中的所有文件夹。我已经这样做了。请您发布一个示例…我试图在上面发布的for循环do alertentries[I]中的SuccessReader函数中列出未获得访问权限的内容…名称;删除所有您将开始获取您设备文件系统上的目录和文件名的内容。把其他东西都拿走。都德你需要通过电话差距文件api文件需要了解这一点。顺便说一句,投票支持post:PSo SuccessReader函数足以打开sd卡路径,这样我就可以点击并上传任何文件…所以你说window.requestFileSystemLocalFileSystem.PERSISTENT,0,onFileSystemSuccessUpload,fail;这将打开android的SD卡。U将获得文件系统访问权限。然后使用var directoryReader=fileSystem.root.createReader;u将获得对目录条目对象的访问权,并使用该访问权访问设备文件系统中的所有文件夹。我已经这样做了。请您发布一个示例…我试图在上面发布的for循环do alertentries[I]中的SuccessReader函数中列出未获得访问权限的内容…名称;删除所有您将开始获取您设备文件系统上的目录和文件名的内容。把其他东西都拿走。都德你需要通过电话差距文件api文件需要了解这一点。顺便说一句,投票支持post:PSo SuccessReader功能足以打开sd卡路径,这样我就可以点击并上传任何文件。。。
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);
            }
}