Я пытаюсь настроить приложение через PhoneGap (Cordova), чтобы делать снимки и загружать их на наш сервер. Я проделал так много ответов здесь и попробовал код в них. Я могу взять камеру и сделать снимок, я могу получить доступ к телефонной галерее. Но я не могу заставить его отправить изображение на сервер. Я попытался отправить изображение и даже отправил поток изображений base64. Я не могу получить его на сервере.Захват изображения/загрузка с помощью Phonegap для iPhone не работает
Вот Javascript на стороне клиента:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
}
function ImageUpload() {
this.useExistingPhoto = function(e) {
this.capture(Camera.PictureSourceType.SAVEDPHOTOALBUM);
}
this.takePhoto = function(e) {
this.capture(Camera.PictureSourceType.CAMERA);
}
this.capture = function(sourceType) {
navigator.camera.getPicture(this.onCaptureSuccess, this.onCaptureFaile, {
destinationType: Camera.DestinationType.FILE_URI,
soureType: sourceType,
correctOrientation: true
});
}
this.onCaptureSuccess = function(imageURI) {
var fail, ft, options, params, win;
success = function(response) {
alert("Your photo has been uploaded!");
};
fail = function(error) {
alert("An error has occurred: Code = " + error.code + "\nMessage = "+error.message);
};
options = new FailUploadOptions();
options.fileKey = "file";
options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
params = {
val1: "some value",
val2: "some other value"
};
options.params = params;
ft= new FileTransfer();
ft.upload(imageURI, 'http://style.appdev01.com/app/client-profile.php', success, faile, options);
}
this.OnCaptureFail = function(message) {
alert("Failed because: "+message);
}
};
var imageuploader = new ImageUpload();
Две кнопки вызывают imageuploader.takePhoto и .useExistingPhoto по щелчку.
На стороне сервера у меня есть это PHP: если (Исеть ($ _ FILES [ 'файл'])) {
$target_path = "/home/style/public_html/images/client_images/app_image.jpg";
move_uploaded_file($_FILES['file']['tmp_name'], $target_path);
$insert = "INSERT INTO
`fut`
SET
`request` = '".serialize($_POST)."',
`file` = '".serialize($_FILES)."'";
$mysql->query($insert);
}
Это только для хранения POST и FILE массивы к db, чтобы убедиться, что они прошли и создали изображение.
Но опять же ничего не доходит до сервера. Любая помощь была бы высоко оценена. Я пробовал так много версий этого кода из многих вопросов здесь и по всему Интернету.