Upload base64 Bild mit Ajax

Mein Client bietet dem Benutzer an, ein Bild auszuwählen, es zuzuschneiden, seine Größe zu ändern und es dann anzuzeigen (in einem<img> DOM-Element).
Wenn das Bild in Ordnung ist, kann der Benutzer es auf den Server hochladen, damit es gespeichert werden kann.

Ich möchte den Upload dank einer Ajax-Anfrage durchführen.

Ich habe im Internet unzählige Beispiele zum Hochladen gefunden das Originalbild vom Client-PC abgerufen. Zum Beispiel

$( '#my-form' )
  .submit( function( e ) {
    $.ajax( {
      url: 'http://host.com/action/',
      type: 'POST',
      data: new FormData( this ),
      processData: false,
      contentType: false
    } );
    e.preventDefault();
  } );

Dies funktioniert ordnungsgemäß, wenn ich das über die Formulareingabe abgerufene Bild hochladen möchte.

In meinem Fall möchte ichUpload das geänderte Bild (in einem @ gespeiche<img> -Element) anstelle des ursprünglichen.
Dieses Bild wird als base64-Bild gespeichert (Zur Information: Ich habe die croppie.js-Bibliothek verwendet, um das Bild zu generieren.

Ich weiß nicht, wie ich dieses Bild mit Ajax hochladen soll.

Ich habe versucht, es als regulären Parameter hochzuladen, aber auf der Serverseite ist das img eine leere Zeichenfolge:

var url = 'http://host.com/action/';
var data = {};
data.img = $('img#generated-image').attr('src');

$.ajax({url: url, type: "POST", data: data})
  .done(function(e){
    // Do something
  });
// RESULTS in a empty data.img on the server side.

Mein Problem ist, dass der Server beim Abrufen des Parameters "img" eine leere Zeichenfolge hat. Ich vermute, das Image ist zu groß, um es an den Server weiterzuleiten, oder es gibt andere Probleme, die ich nicht versteh

Also ich frage mich, was ist dasproper Weg, um ein base64-Image an den Server zu senden mit einer Ajax-AnfrageOHN mit einem Formular.

Danke für Ihre Hilfe

BEARBEITE

Scheint ein Problem mit der Größe des xmlHTTP-POST-Parameters zu sein. Ich habe versucht, die Anzahl der Zeichen in der Zeichenfolgendarstellung des Bildes zu verringern, und der Server kann es jetzt abrufen.

EDIT2

post_max_size ist in der php.ini-Datei auf 8 MB eingestellt, wobei die Bildgröße nur 24 KB beträgt. Also das Problem ist nicht da.
Ich verwende PHP mit dem Symfony2-Framework.
Vielleicht eine Einschränkung von Symfony2.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage