Senden Sie das Bild im richtigen Format mit dem http-Adapter von Worklight

Ich versuche, ein Bild (als Teil eines Formulars) von einer Worklight V6-App mit dem HTTP-Adapter auf einem PHP-Server zu veröffentlichen. Das Bild ist Base64-codiert

navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 8,
 destinationType: navigator.camera.DestinationType.DATA_URL });

.. später im Code

$('#myImageImg').attr('src', "data:image/jpeg;base64," + imageData);

Ich schicke das Bild an den Adapter

var img = $('#myImageImg').attr('src');

var formData = {"someField" : name,
"image" : img };

var invocationData = {
        adapter : 'emailAdapter',
        procedure : 'sendEmail',
        parameters :  [ formData ]
    };
    var options = {
        onSuccess : sendEmailOK,
        onFailure : sendEmailFail,
        invocationContext : {}
};

$.mobile.showPageLoadingMsg();

WL.Client.invokeProcedure(invocationData,options);

In meinem HTTP-Adapter uriencodiere ich die Formulardaten und sende sie x-www-form-urlencoded

function sendEmail(inputData) {
var uri = 'myStuff/sendEmail.php';



var imageData="image='" + inputData.image+"'";


var formData = encodeURI(imageData);
var input = {
    method : 'post',
    returnedContentType : 'html',
    path : path,

   body: { "contentType" : "application/x-www-form-urlencoded",

        'content' : formData

    }

Wenn ich die Daten dekodiere und sie mit meinem PHP-Server in einer Datei speichere, zeigt der Windows Photo Viewer die Fehlermeldung "Windows Photo Viewer kann dieses Bild nicht öffnen, da die Datei beschädigt, beschädigt oder zu groß zu sein scheint" an.

Ich bin ein PHP-Anfänger, aber hier ist der PHP-Code, den ich verwendet habe

<?php
$image = $_POST['image']

$decoded=base64_decode($image);

file_put_contents('C:\apache\htdocs\myStuff\newImage.JPG',$decoded);

Ich bin mir sicher, dass ich einen dummen Anfängerfehler mache, aber ich bin mir nicht sicher, ob er in meinem Adaptercode, dem PHP-Code oder in meinem Worklight-Clientcode enthalten ist. Vielen Dank im Voraus für alle Vorschläge.

JT

Antworten auf die Frage(2)

Ihre Antwort auf die Frage