De hecho, tengo una entrada de archivo y me gustaría recuperar los datos de Base64 del archivo.
Lo intenté:
$('input#myInput')[0].files[0]
para recuperar los datos. Pero solo proporciona el nombre, la longitud, el tipo de contenido, pero no los datos en sí.
De hecho, necesito estos datos para enviarlos a Amazon S3
Ya pruebo la API y cuando envío los datos a través del formulario html con el tipo de codificación "multipart / form-data" funciona.
Yo uso este complemento: http://jasny.github.com/bootstrap/javascript.html#fileupload
Y estos complementos me dan una vista previa de la imagen y recupero datos en el atributo src de la vista previa de la imagen. Pero cuando envío estos datos a S3 no funciona. Tal vez necesito codificar los datos como "multipart / form-data" pero no sé por qué.
¿Hay alguna manera de recuperar estos datos sin usar un formulario html?
fuente
Respuestas:
Puedes probar la API FileReader. Haz algo como esto:
fuente
\xc3\xbf\xc3
lugar de obtener esta codificación\xff\xd8\xff
para los 3 primeros caracteres de mi imagen. ¿Qué debo usar para obtener la segunda codificación para mi imagen?elemento del archivo de entrada:
Obtener el archivo :
fuente
$('.myClass').prop('files', myFile );
Creé un objeto de datos de formulario y agregué el archivo:
y obtuve:
en los encabezados enviados. Puedo confirmar que esto funciona porque mi archivo fue enviado y almacenado en una carpeta en mi servidor. Si no sabe cómo usar el objeto FormData, hay algo de documentación en línea, pero no mucha. Explicación de objetos de datos de formulario por Mozilla
fuente
HTML:
jQuery:
Queremos obtener solo el primer elemento, porque prop ('archivos') devuelve la matriz.
fuente
input
elemento, de tipofile
En su
input
cambio, use elFileReader
objeto y lea lainput
propiedad de su archivo:FileReader cargará su archivo y en
fileReader.result
él tendrá los datos del archivo en formato Base64 (también el tipo de contenido de archivo (MIME), texto / plano, imagen / jpg, etc.)fuente
FileReader API con jQuery, ejemplo simple.
Para leer como texto ... descomente la
//fr.readAsText(file);
línea y comentefr.readAsDataURL(file);
fuente
Descargue los archivos anteriores llamados fileinput y agregue la ruta en su página de índice.
fuente