Javascript 使用phonegap框架访问Android设备上的图像文件

Javascript 使用phonegap框架访问Android设备上的图像文件,javascript,android,phonegap-plugins,Javascript,Android,Phonegap Plugins,我正在使用PhoneGap5.3.1和Android 22。我正在尝试使用phonegap的Filetransfer api将图像传输到远程服务器 var options = new FileUploadOptions(); options.fileKey="file"; options.fileName=imageData.substr(imageData.lastIndexOf('/')+1); alert("The filename here is : " + imag

我正在使用PhoneGap5.3.1和Android 22。我正在尝试使用phonegap的Filetransfer api将图像传输到远程服务器

var options = new FileUploadOptions();          
options.fileKey="file";
options.fileName=imageData.substr(imageData.lastIndexOf('/')+1);
alert("The filename here is : " + imageData);
这里是图像数据打印

content //com.android.providers.media.documents/document/image/image%3A53
进一步输入下面的代码

imageData.substr(imageData.lastIndexOf('/')+1);
是否分配选项。fileName=“image%3A53”

这不是我在设备上拥有的图像名称。我认为这是一个问题

用于运行FileTransfer插件的javascript表示文件已成功传输,但我在服务器上找不到该文件(运行PHP)

服务器响应如下所示:

已从服务器获得响应

  Array
  (
      [file] => Array
          (
              [name] => image%3A53
              [type] => image/jpeg
              [tmp_name] => /tmp/php8qjZXN
              [error] => 0
              [size] => 137490
          )
  )
也很少有帖子说:

您不能在FileTransfer上载方法中使用从摄像头成功回调中获得的imageUri,您必须首先将uri解析为如下文件名:

navigator.camera.getPicture(function(imageURI){

      window.resolveLocalFileSystemURI(imageUri, function(fileEntry) {
            fileEntry.file(function(fileObj) {

                var fileName = fileObj.fullPath;

                //now use the fileName in your method
                //ft.upload(fileName ,serverURL + '/ajax.php?fname=appuploadspotimage'...);

            });
        });
});

非常感谢您的帮助。

我找到了问题的答案。问题不在客户端,而是在服务器端。 我引用了以下帖子:

关键是“您是否检查了文件夹和脚本权限?它们都应该具有相同的用户/组。如果您运行的是Apache,它将类似于Apache:Apache。您可以从cmd行运行chown Apache:Apache upload.php,然后运行chown-R Apache:Apache php/”

函数move_upload_file([source]、[destination])。图像文件夹的路径应位于网站根目录下的某个位置。上载的文件将从/tmp移动到上载文件夹。该文件夹(以及执行该工作的脚本)需要归apache所有


我做了上面提到的权限,它工作了。感谢大家的及时回复。

137490字节的文件大小正确吗?如果是这样,我会说你的服务器正在获取文件。您在
/tmp/php8qjZXN
上找到了什么?文件的大小似乎正确。另外,我还得到了下面的-bash:cd:/tmp/php8qjZXN:没有这样的文件或目录我们能看到处理请求并存储文件的PHP吗?它看起来像是PHP脚本中的错误吗?