Я создаю приложение в PhoneGap , которое требует загрузки изображения на сервер Linux. Я настроил тест CentOS 7 VM , установил и настроил на нем стек LEMP , а затем создал скрипт php с именем upload.php
(ниже). Этот сценарий был извлечен из Интернета из нескольких различных учебных пособий, и я просто отредактировал путь, чтобы сохранить файл в нужном месте.
Затем я создал свой код javascript для загрузки его на сервер, но он не работал, поэтому я просто взял код из онлайнового учебного пособия только для целей тестирования, чтобы проверить, работает ли он должным образом (также ниже). Я получаю предупреждение о том, что оно работает, но изображение не загружается, поэтому я попытался отключить брандмауэр, но все равно не повезло.
Я не уверен, что это настройка сервера, javascript, php или просто мой провайдер. Любая помощь очень ценится.
Я использую плагины 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);
}