使用phonegap框架访问Android设备上的图像文件
Access image files on Android device using phonegap framework
我使用的是Phonegap 5.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
)
)
还有一些帖子说:Phonegap android无法使用文件传输上传图像
你不能在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'...);
});
});
});
如有任何帮助,我们将不胜感激。
我找到了问题的答案。问题不在客户端,而在服务器端。我引用了以下帖子:文件上传成功,但服务器中没有照片(phonegap android)
关键是"你检查过你的文件夹和脚本权限了吗?它们都应该有相同的用户/组。如果你运行的是Apache,它会类似于Apache:Apache。从cmd行,你可以运行chown Apache:apacheupload.php,然后运行chown-R Apache:apachphp/"
函数move_upload_file([source],[destination])。图像文件夹的路径应该在网站根目录下。上传的文件将从/tmp移动到您的上传文件夹中。该文件夹(以及执行工作的脚本)需要由apache拥有。
我按照上面提到的方式设置了权限,它起到了作用。感谢大家及时回复。
- 将包含SVG元素的HTML转换为图像文件
- 由多个图像文件组成的响应地图
- 使用文件夹路径名保存所有图像文件和文件名
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 将图像文件存储在猫鼬模式中的二进制数据中,并以html形式显示图像
- 如何使用heatmap.js保存canvas标记生成的图像文件
- 如何使用html / angularjs保存图像文件
- 如何从 HTML 或 Javascript for Windows Phone 访问图像文件
- 在 Windows 现代(地铁)UI 应用中存储图像文件和音频文件的方法是什么?
- 节点 js 流星 js 图像文件上传图像损坏
- 从图像URL javascript html保存图像文件
- 如何使用AJAX读取图像文件并渲染到Canvas
- 浏览器和大量的图像文件处理
- 什么错误I'我在下面的jQuery代码中集成filepicker.io来上传一个图像文件
- 节点:将 base64 源写入图像文件
- 如何将图像文件以及JavaScript变量的值上传到服务器和数据库
- 如何从本地文件夹(磁盘存储)读取或获取图像文件,并使用nodejs服务器将其发送到Angularjs
- 如何使用expressnodejs上传图像文件并进行显示
- 如何用我在HTML5画布上绘制的src保存图像文件
- 图像文件因websocket文件传输而损坏