无法通过Phonegap和PHP将图像上传到Linux服务器

时间:2018-08-28 08:30:51

标签: php jquery cordova nginx phonegap

我正在 PhoneGap 中制作一个需要将图像上传到Linux服务器的应用程序。我设置了一个测试 CentOS 7 VM ,并在其上安装并配置了 LEMP 堆栈,然后创建了一个名为upload.php php 脚本。 (下面)。该脚本是从多个教程中的INTERNET上摘下来的,我只是编辑了将文件保存到所需位置的路径。

然后,我创建了JavaScript代码,将其上传到服务器,但是它无法正常工作,因此我只是从在线教程中获取了代码,仅用于测试目的,以查看其是否正常运行(也在下面)。我收到警报,表明它正在运行,但没有图像上传,因此我尝试禁用防火墙,但仍然没有运气。

我不确定这是服务器设置,javascript,php还是我的ISP。非常感谢您的帮助。

我正在使用cordova插件: 相机

文件

文件传输


PHP:

<?php $new_image_name = urldecode($_FILES["file"]["name"]).".jpg"; move_uploaded_file($_FILES["file"]["tmp_name"], "/upload/".$new_image_name); ?>

Javascript:

navigator.camera.getPicture(uploadPhoto, function(message) {
 alert('get picture failed');
 }, {
 quality: 100,
 destinationType: navigator.camera.DestinationType.FILE_URI,
 sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
 });
}

function uploadPhoto(imageURI) {
 var options = new FileUploadOptions();
 options.fileKey = "file";
 options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
 options.mimeType = "image/jpeg";
 console.log(options.fileName);
 var params = new Object();
 params.value1 = "test";
 params.value2 = "param";
 options.params = params;
 options.chunkedMode = false;

var ft = new FileTransfer();
 ft.upload(imageURI, "http://192.168.1.11/upload.php", function(result){
 alert(JSON.stringify(result));
alert('works');
 }, function(error){
 console.log(JSON.stringify(error));
alert('doesnt');
 }, options);
 }

1 个答案:

答案 0 :(得分:0)

需要解决一些问题。所有这些都非常简单。

我使用的是绝对路径,但是php将其解释为相对路径,所以我只是更改了路径。

该目录也归root所有,因此我使用chown nginx:nginx uploads

进行了修复

防火墙阻止了我手机的访问,因此我禁用了防火墙,但仍需要提出更好的解决方案。我敢肯定这很简单,但是还没有解决。