【问题标题】:How to open SDCARD of android using phonegap如何使用phonegap打开android的SDCARD
【发布时间】:2012-03-30 09:50:26
【问题描述】:

大家好,我正在尝试将 pdf 文件上传到我的 php 服务器脚本,我的 pdf 文件在 android mobile 上,它只会在 sd 卡上,所以我想通过 javascript 使用 phonegap 打开 android 设备的 sd 卡。

【问题讨论】:

  • 看到我上传了一张图片,我使用 navigator.camera.PictureSourceType.PHOTOLIBRARY 功能打开画廊,就像我需要打开 sdcard...我该怎么做...

标签: javascript cordova android-sdcard


【解决方案1】:
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);
            }
}

【讨论】:

  • 所以你说 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccessUpload, fail);这将打开android的sdcard。
  • U 将获得文件系统访问权限。然后用 var directoryReader = fileSystem.root.createReader();您将获得对目录条目对象的访问权限以及对设备文件系统中所有文件夹的访问权限。我已经做到了。
  • 请您发布一个示例...我试图列出内容只是没有获得访问权限...
  • 在我在上面的 for 循环中发布的 SuccessReader 函数中,执行 alert(entries[i].name);删除所有您将开始获取您的设备文件系统上的目录和文件的名称。删除其他所有内容。伙计,你需要通过电话间隙文件 api doc 才能理解这一点。顺便说一句:P
  • 所以 SuccessReader 功能足以打开 sd 卡路径,所以我可以点击并上传任何文件...
【解决方案2】:

使用这个

navigator.camera.getPicture(successFn, errorFn, { quality: 50,
    destinationType: navigator.camera.DestinationType.FILE_URI,
    sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
    mediaType: navigator.camera.MediaType.ALLMEDIA  });

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

【讨论】:

  • 我需要上传一个 .pdf 文件,所以我只需要打开 sdcard 怎么打开
  • 没有选项只能打开 sdcard。用户必须导航到随附的文件选择器中的 sd 卡文件夹
  • 看到我有一个按钮,如果我按下按钮,它必须导航到移动设备的 SD 卡......之后用户可以选择他的文件并上传......
  • 你必须为此编写自己的 phonegap 插件。仅用于打开 sd 卡内容
猜你喜欢
  • 1970-01-01
  • 2019-09-18
  • 2021-04-22
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
相关资源
最近更新 更多