Ich habe tatsächlich eine Dateieingabe und möchte die Base64-Daten der Datei abrufen.
Ich habe es versucht:
$('input#myInput')[0].files[0]
um die Daten abzurufen. Es werden jedoch nur der Name, die Länge, der Inhaltstyp und nicht die Daten selbst angegeben.
Ich benötige diese Daten tatsächlich, um sie an Amazon S3 zu senden
Ich teste die API bereits und wenn ich die Daten über ein HTML-Formular mit dem Codierungstyp "Multipart / Formulardaten" sende, funktioniert es.
Ich benutze dieses Plugin: http://jasny.github.com/bootstrap/javascript.html#fileupload
Und diese Plugins geben mir eine Vorschau des Bildes und ich rufe Daten im src-Attribut der Bildvorschau ab. Aber wenn ich diese Daten an S3 sende, funktioniert es nicht. Ich muss die Daten möglicherweise wie "Multipart / Formulardaten" codieren, aber ich weiß nicht warum.
Gibt es eine Möglichkeit, diese Daten ohne Verwendung eines HTML-Formulars abzurufen?
quelle
Antworten:
Sie können die FileReader-API ausprobieren. Mach so etwas:
quelle
\xc3\xbf\xc3
statt dieser Kodierung\xff\xd8\xff
die 3 ersten Zeichen meines Bildes. Was soll ich verwenden, um die zweite Codierung für mein Bild zu erhalten?Eingabedateielement:
eine Datei bekommen :
quelle
$('.myClass').prop('files', myFile );
Ich habe ein Formulardatenobjekt erstellt und die Datei angehängt:
und ich bekam:
in den Headern gesendet. Ich kann bestätigen, dass dies funktioniert, da meine Datei gesendet und in einem Ordner auf meinem Server gespeichert wurde. Wenn Sie nicht wissen, wie Sie das FormData-Objekt verwenden sollen, ist online eine Dokumentation vorhanden, aber nicht viel. Form Data Object Explination von Mozilla
quelle
Html:
jQuery:
Wir möchten nur das erste Element erhalten, da prop ('files') ein Array zurückgibt.
quelle
input
Element vom Typfile
input
Verwenden Sie bei Ihrer Änderung dasFileReader
Objekt und lesen Sie Ihreinput
Dateieigenschaft:FileReader lädt Ihre Datei und
fileReader.result
Sie haben die Dateidaten im Base64-Format (auch den Dateiinhaltstyp (MIME), Text / Plain, Image / JPG usw.).quelle
FileReader API mit jQuery, einfaches Beispiel.
Als Text lesen ...
//fr.readAsText(file);
Zeile und Kommentar auskommentierenfr.readAsDataURL(file);
quelle
Laden Sie die obigen Dateien mit dem Namen fileinput herunter und fügen Sie den Pfad auf Ihrer Indexseite hinzu.
quelle