Cordova: загрузить изображение, не работающее после съемки

Я работаю над iOS-приложением, разработанным с Apache Cordova aka Phonegap. Я хотел бы загрузить фотографии в два этапа: 1. Захватите фотографию и покажите фотографию в небольшом размере 2. Загрузите фотографию Мне нужна одна кнопка для съемки и одна кнопка для загрузки.

Мой script не работает. Что не так?

Вот мой файл JavaScript:

var pictureSource;
var destinationType;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
 pictureSource = navigator.camera.PictureSourceType;
 destinationType = navigator.camera.DestinationType;
}
function clearCache() {
 navigator.camera.cleanup();
}
var retries = 0;
function onCapturePhoto(fileURI) {
 var win = function (r) {
 clearCache();
 retries = 0;
 navigator.notification.alert(
 '',
 onCapturePhoto,
 'Der Upload wurde abgeschlossen',
 'OK');
 console.log(r);
 }
 var fail = function (error) {
 navigator.notification.alert(
 'Bitte versuchen Sie es noch einmal.',
 onCapturePhoto,
 'Ein unerwarteter Fehler ist aufgetreten',
 'OK');
 console.log("upload error source " + error.source);
 console.log("upload error target " + error.target);
 if (retries == 0) {
 retries ++
 setTimeout(function() {
 onCapturePhoto(fileURI)
 }, 1000)
 } else {
 retries = 0;
 clearCache();
 alert('Fehler!');
 }
 }
 */do nothing*/
}
function capturePhoto() {
 navigator.camera.getPicture(onCapturePhoto, onFail, {
 quality: 50,
 destinationType: destinationType.FILE_URI
 });
}
function getPhoto(source) {
 navigator.camera.getPicture(onPhotoURISuccess, onFail, {
 quality: 50,
 destinationType: destinationType.FILE_URI,
 sourceType: source });
 }
function onFail(message) {
 alert('Failed because: ' + message);
}
function photoUpload(imageData) {
 var options = new FileUploadOptions();
 options.fileKey = "file";
 options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
 options.mimeType = "image/jpeg";
 options.chunkedMode = false;
 var params = new Object();
 params.fileKey = "file";
 options.params = {}; // eig = params, if we need to send parameters to the server request
 var ft = new FileTransfer();
 ft.upload(fileURI, encodeURI("http://XXXXXXXX.com/app/upload.php"), win, fail, options);
}
<div id="camera">
 <button onclick="capturePhoto();">Foto aufnehmen</button>
 <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button>
 <div style="text-align:center;margin:20px;">
 
 </div>
 <button onclick="photoUpload(imageData);">UPLOAD</button>
</div>
2 ответа

Обновление

Я только что переустановил ваш код, надеюсь, что он вам поможет.

JavaScript

HTML

<div id="camera">
 <button onclick="capturePhoto();">Foto aufnehmen</button>
 <button onclick="getPhoto();">From Photo Library</button>
 <div style="text-align:center;margin:20px;">
 
 </div>
 <button onclick="photoUpload();">UPLOAD</button>
</div>


1. Захватите фотографию и покажите фотографию в небольшом размере

  • Здесь вы можете установить изображение на успех onCapturePhoto (fileURI) , например.

    function onCapturePhoto(fileURI) {
     $("#cameraPic").attr("src", fileURI);
    }

2. Загрузите фотографию для съемки одной кнопки для загрузки

<button onclick="photoUpload();">UPLOAD</button>
 function photoUpload() {
 var fileURI = $("#cameraPic").attr("src");
 /* YOUR CODE TO UPLOAD IMAGE*/
 }

licensed under cc by-sa 3.0 with attribution.