Na verdade, tenho uma entrada de arquivo e gostaria de recuperar os dados Base64 do arquivo.
Eu tentei:
$('input#myInput')[0].files[0]
para recuperar os dados. Mas ele fornece apenas o nome, o comprimento, o tipo de conteúdo, mas não os dados em si.
Na verdade, eu preciso desses dados para enviá-los ao Amazon S3
Já testei a API e, quando envio os dados através do formulário html com o tipo de codificação "multipart / form-data", ele funciona.
Eu uso este plugin: http://jasny.github.com/bootstrap/javascript.html#fileupload
E esses plugins me fornecem uma visualização da imagem e eu recupero dados no atributo src da visualização da imagem. Mas quando eu envio esses dados para o S3, eles não funcionam. Talvez eu precise codificar os dados como "multipart / form-data", mas não sei por que.
Existe uma maneira de recuperar esses dados sem usar um formulário html?
fonte
Respostas:
Você pode tentar a API FileReader. Faça algo parecido com isto:
fonte
\xc3\xbf\xc3
vez de obter essa codificação\xff\xd8\xff
para os 3 primeiros caracteres da minha imagem. O que devo usar para obter a segunda codificação da minha foto?elemento do arquivo de entrada:
obter arquivo:
fonte
$('.myClass').prop('files', myFile );
Criei um objeto de dados do formulário e anexei o arquivo:
e eu tenho:
nos cabeçalhos enviados. Posso confirmar que isso funciona porque meu arquivo foi enviado e armazenado em uma pasta no meu servidor. Se você não souber como usar o objeto FormData, existe alguma documentação online, mas não muita. Exploração de objeto de dados de formulário da Mozilla
fonte
Html:
jQuery:
Queremos obter apenas o primeiro elemento, porque prop ('files') retorna array.
fonte
input
elemento, do tipofile
Em sua
input
alteração, use oFileReader
objeto e leia suainput
propriedade de arquivo:O FileReader carregará seu arquivo e
fileReader.result
você terá os dados do arquivo no formato Base64 (também o tipo de conteúdo do arquivo (MIME), texto / sem formatação, imagem / jpg, etc)fonte
API FileReader com jQuery, exemplo simples.
Para ler como texto ... descomente a
//fr.readAsText(file);
linha e o comentáriofr.readAsDataURL(file);
fonte
Faça o download dos arquivos acima denominados fileinput e adicione o caminho na sua página de índice.
fonte