JavaScript: Como abrir um arquivo retornado via AJAX
Isso é semelhante a:Como abrir um arquivo usando JavaScript?
Objetivo: recuperar / abrir um arquivo no clique duplo de uma imagemfunction getFile(filename){
// setting mime this way is for example only
var mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
jQuery.ajax({ url : 'get_file.pl',
data : {filename:filename},
success : function(data){
var win = window.open('','title');
win.document.open(mime);
win.document.write(data);
win.document.close();
}
});
}
jQuery('#imgID').dblclick(function(){
getFile('someFile.docx');
});
Eu estou fazendo isso fora do topo da minha cabeça, mas acho que o acima funcionaria para arquivos de texto, mas não binário. Existe um plugin que faz isso corretamente? O ideal seria abrir o arquivo no navegador (ou aplicativo), ao invés de baixar, mas duvido que seja um sonho. Se o arquivo precisar ser baixado com o diálogo salvar / abrir, tudo bem.
Editar:Uma informação que esqueci de mencionar é que eu gostaria que isso fosse uma solicitação POST. Isto é em parte porque eu estava olhando para AJAX para começar. Eu vi soluções alternativas que criaram formulários / iframes para fazer algo semelhante, mas eu estava procurando por um melhor manipulador da informação retornada.