wie Sie angeben, binäre Daten in jquery post-Funktion
Ich habe screenshot als Binär-string.
Ich möchte nach einigen Daten an server unter Verwendung von $.post () - Funktion.
Mein code:
var filename = "screenshot.jpg":
var filedataUrl = "";//string like 'data:image/jpeg;base64,/9j/4A .....'
$.post(serverUrl, {
title: title
name: name
/*here must be my file */
}, function(response) {
alert('ok');
});
Wie kann ich festlegen, parameter als Datei Anhängen?
- Sie kann sein Interesse durch die Antwort in diesem post stackoverflow.com/questions/19148065/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
data
Beispiel:
Finden Sie unter: http://api.jquery.com/jQuery.post/
Technisch base64 ist eine text-Darstellung von binären Daten - wenn Sie in Ordnung mit dieser oben genannten Antworten sind richtig. Wenn Sie möchten, senden Reale binäre Daten, die Sie haben zu verwenden FormData.
Wenn ich lese Ihre Frage richtig speichern Sie die html - "screenshot" auf das canvas-element. Wenn so zu Lesen, anstatt
toDataURL
Sie verwenden sollten,toBlob. Dies wird Ihnen binäre Daten, die wir senden können, mit FormDataOben kann senden mit regelmäßigen
XMLHttpRequest
:Beispiel -> codepen
Wenn Sie einen Blick auf die chrome-Inspektor, sehen Sie, dass die korrekte multipart-request erstellt:
Können Sie auch senden Sie obiges Formular mit jQuery:
Update
Sah nur Ihre Kenntnis über den Umgang mit Datei-upload auf server-Seite in PHP. Hochgeladene Datei steht in $_FILES-array:
Müssen Sie ein paar Dinge zu tun.
Zuerst müssen Sie, um Trennung der filedataUrl. Sie wollen nur die base64-Daten, der rest nicht. Verwenden Sie dann die Methoden in Base64-Codierung und Decodierung in client-side Javascript zum base64 decodieren der Zeichenfolge in der Variablen " holding binäre Daten.
Dann die variable im post-Anfrage.
Ich glaube nicht, dass Sie hochladen können Sie das Bild mit einem Dateinamen. Möglicherweise müssen Sie ein Formular erstellen mit file-input-element, wo der Benutzer kann wählen Sie eine Datei (nicht per javascript).
Dann senden Sie das Formular mit AJAX.
base64
codierte Bild ist auch ein normaler string. Man kann Sie alsdata
zu den jQuery-POST.Wird es sein, wie die folgenden.