Bem vamos lá...

@RafaelViana vlw pela dica, ainda não refatorei ..estou só testando
mais quando for refatorar vou lembrar da sua dica ;)

@J.C.Kodel o que vc está me dizendo é justamente o erro,
principalmente na frase
"application/octet é o binário genérico que sempre vai realizar
download do
arquivo. " e mesmo que eu faça response.getContentType("application/
msword") por exemplo armazena no banco o "application/octet-stream"
quando tento abrir no word ou odt algumas coisa são legiveis, tipo:

------------Ef1cH2cH2GI3Ef1gL6Ij5ei4gL6GI3
Content-Disposition: form-data; name="Filename"

TextFlow.doc
------------Ef1cH2cH2GI3Ef1gL6Ij5ei4gL6GI3
Content-Disposition: form-data; name="Filedata";
filename="TextFlow.doc"
Content-Type: application/octet-stream

depois binaários e no final

------------Ef1cH2cH2GI3Ef1gL6Ij5ei4gL6GI3
Content-Disposition: form-data; name="Upload"

Submit Query
------------Ef1cH2cH2GI3Ef1gL6Ij5ei4gL6GI3--

ou seja, no banco quando mando salvar os byte[] é isso que armazena...
como falei e vc também "PDF no plug-in do navegador" funciona e tal...
e como sempre o detalhe custa dia, vida e programador não é fácil...
tem vezes que estressa :@

de qualquer forma galera vlw pela força, só tem fera nessa lista :) me
ajudando muito.

Cumps.

On 2 dez, 18:51, J.C.Ködel <jcko...@gmail.com> wrote:
> O MIME type é inútil, caso queira apenas se fazer download de um arquivo.
> application/octet é o binário genérico que sempre vai realizar download do
> arquivo.
> Para o nome do arquivo há outro header (content file name eu creio).
>
> Se estiverem usando o recurso de mostrar o PDF no plug-in do navegador, aí
> desconsiderem o que eu disse.
>
> --------------------------------------------------
> From: "RafaelViana" <rfl.vi...@gmail.com>
> Sent: Wednesday, December 02, 2009 6:21 PM
> To: "flexdev" <flexdev@googlegroups.com>
> Subject: [flexdev] Re: Arquivos blob, sugestão!?
>
>
>
>
>
> > Uma opinião
>
> > porque em vez de salvar no banco você não salva o mime type??
>
> > Esse código ta repetindo várias linhas só para diferenciar o content
> > type:
>
> > if (objetoBanco.getTipoArquivo().equals(".pdf")) {
> >>                                 if (bytes != null && bytes.length > 0) {
>
> >> response.setContentType("application/pdf"); //única coisa diferente
>
> >> response.setContentLength(bytes.length); //linha repetida em todos ifs
> >>                                         ServletOutputStream ouputStream =
> >> response
>
> >> .getOutputStream(); //linha repetida em todos ifs
> >>                                         ouputStream.write(bytes, 0,
> >> bytes.length); //linha repetida em todos ifs
> >>                                         ouputStream.flush(); //linha
> >> repetida em todos ifs
> >>                                         ouputStream.close(); //linha
> >> repetida em todos ifs
> >>                                 }
> >>                         }
>
> > não seria mais bonito e prático assim? imagina ter 20 tipos de
> > arquivos diferentes??
>
> > if (bytes != null && bytes.length > 0) {
> >                                       response.setContentType
> > (objetoBanco.getContentType());
> >                                         response.setContentLength
> > (bytes.length);
> >                                         ServletOutputStream
> > ouputStream = response
>
> >   .getOutputStream();
> >                                         ouputStream.write(bytes, 0,
> > bytes.length);
> >                                         ouputStream.flush();
> >                                         ouputStream.close();
> >                                 }
>
> > O que eu faço é na hora de salvar o objeto é verificar a extensão para
> > salvar o mime type correspondente:
>
> > Eu tenho uma função, para selecionar o tipo correto (se quiser pode
> > colocar os tipos que você acha mais comum):
>
> > private function selectContentType(extension:String):String{
>
> > var contentType:String;
>
> > switch(extension){
> > case ".doc" : contentType = "application/msword";
> > break;
> > case ".docx" : contentType = "application/vnd.openxmlformats-
> > officedocument.wordprocessingml.document";
> > break;
> > case ".gif" : contentType = "image/gif";
> > break;
> > case ".jpeg" : contentType = "image/jpeg";
> > break;
> > case ".jpg" : contentType = "image/jpeg";
> > break;
> > case ".pdf" : contentType = "application/pdf";
> > break;
> > case ".png" : contentType = "image/png";
> > break;
> > case ".ppt" : contentType = "application/mspowerpoint";
> > break;
> > case ".rar" : contentType = "application/x-rar-compressed";
> > break;
> > case ".rtf" : contentType = "text/rtf";
> > break;
> > case ".txt" : contentType = "text/plain";
> > break;
> > case ".xls" : contentType = "application/vnd.ms-excel";
> > break;
> > case ".zip" : contentType = "application/zip";
> > break;
> > }
>
> > return contentType;
> > }
>
> > Aqui tem uma lista (quando fiz usei outra, mas aqui tem bastante
> > também):
> >http://webdesign.about.com/od/multimedia/l/bl_mime_types_by_cnt_type.htm
>
> > On 2 dez, 15:25, Janderson <janderson...@hotmail.com> wrote:
> >> hehe, muito obrigado Everton, fiz exatamente isso e funcionou show...
> >> já tinha usado o contentType para saída dos relatórios e nem me liguei
> >> outra vez de usá-los neste momento também... fiz os teste aqui e
> >> funcionou legal, mas...rs com pdf vai tranquilo já com word e
> >> openOffice uma berração, e os contentType estão certos, olha só:
>
> >> byte[] bytes = objetoBanco.getArquivo(); //meu byte[] que veio do
> >> banco
>
> >>                         if (objetoBanco.getTipoArquivo().equals(".pdf"))
> >> {
> >>                                 if (bytes != null && bytes.length > 0) {
>
> >> response.setContentType("application/pdf");
>
> >> response.setContentLength(bytes.length);
> >>                                         ServletOutputStream ouputStream =
> >> response
>
> >> .getOutputStream();
> >>                                         ouputStream.write(bytes, 0,
> >> bytes.length);
> >>                                         ouputStream.flush();
> >>                                         ouputStream.close();
> >>                                 }
> >>                         }
> >>                         if (objetoBanco.getTipoArquivo().equals(".doc"))
> >> {
> >>                                 if (bytes != null && bytes.length > 0) {
>
> >> response.setContentType("application/msword");
>
> >> response.setContentLength(bytes.length);
> >>                                         ServletOutputStream ouputStream =
> >> response
>
> >> .getOutputStream();
> >>                                         ouputStream.write(bytes, 0,
> >> bytes.length);
> >>                                         ouputStream.flush();
> >>                                         ouputStream.close();
> >>                                 }
> >>                         }
> >>                         if (objetoBanco.getTipoArquivo().equals(".odt"))
> >> {
> >>                                 if (bytes != null && bytes.length > 0) {
> >>                                         response
>
> >> .setContentType("application/vnd.oasis.opendocument.text");
>
> >> response.setContentLength(bytes.length);
> >>                                         ServletOutputStream ouputStream =
> >> response
>
> >> .getOutputStream();
> >>                                         ouputStream.write(bytes);
> >>                                         ouputStream.flush();
> >>                                         ouputStream.close();
> >>                                 }
> >>                         }
>
> >> bizarro isso... pelo que entendi quando armazeno os array de bytes
> >> (blob) no banco é armazenado até os cabeçalhos e tal, o pdf para
> >> entender que é um cabeçallho e ignora já os outros dois nada... mostra
> >> o binário mesmo.... mas enfim..chegando perto do fim disso, vlw mais
> >> uma vez Everton..foi de grande ajuda ;)
>
> >> Cumps.
>
> >> On 2 dez, 13:25, Everton Rivas <evertonri...@gmail.com> wrote:
>
> >> > Já que você consegue gerar o arquivo, manda esta saída para o content
> >> > type
> >> > indicando qual o tipo de arquivo (já gravado no banco de dados) e o
> >> > navegador se encarrega de abrir ou realizar o download do arquivo
> >> > ;)http://java.sun.com/products/servlet/2.1/api/javax.servlet.ServletRes...
> >> > <http://java.sun.com/products/servlet/2.1/api/javax.servlet.ServletRes...>http://faq.javaranch.com/java/JspAndExcel
> >> >  <http://faq.javaranch.com/java/JspAndExcel>Esta é uma opção bacana,
> >> > pois
> >> > pode forçar o navegador à realizar o download ou fazer com que abra
> >> > diretamente no browser. Não haverá necessidade de utilizar o seu
> >> > fileReference, mas se quiser uma dica coloque um grid para que o
> >> > usuário
> >> > selecione os arquivos que irá baixar e mande todos compactados em zip
> >> > se
> >> > houver mais do que 1. Para um único arquivo apenas o link de download
> >> > chamando sua página jsp que montará o arquivo e enviará a saída para o
> >> > content-type.
>
> >> > 2009/12/2 Janderson <janderson...@hotmail.com>
>
> >> > > bem..como disse o arquivo funcionou que uma beleza, a questão é a
> >> > > continuação..pense comigo..
>
> >> > > tenho um arquivo blob(byte[]) que vem do banco, certo, que que eu
> >> > > pensei, pegar esse byte[] transformar em inputStream e abrir ou no
> >> > > word, ou pdf, ou openOffice de acordo com a extensão do arquivo, até
> >> > > ok mas... o sistema roda modelo client server ... então se eu mandar
> >> > > no java um getRuntime.exec... vai abrir no server e não no client,
> >> > > entendeu!?
>
> >> > > alguma sugestão... a inicio vou ter que pegar o blog..gerar um
> >> > > arquivo
> >> > > no server e fazer download atraves do FileReference no flex, que
> >> > > porre :( alguma idéia de como melhorar isso ? vlw galera
>
> >> > > Cumps.
>
> >> > > On 1 dez, 10:37, Janderson <janderson...@hotmail.com> wrote:
> >> > > > claro, agora faz todo sentido :) como não pensei nisso antes, tem
> >> > > > dia
> >> > > > que nem o café ajuda o sujeito a se concentrar :)
>
> >> > > > funcionou perfeito galera, só para registrar, não usei o stream e
> >> > > > sim
> >> > > > o byte[] indicado pelo Mário Júnior, vlw :)
>
> >> > > > Cumps.
>
> >> > > > On 1 dez, 10:32, Mário Júnior <juninho...@gmail.com> wrote:
>
> >> > > > > é só persistir o byte[] no seu bd (q será um campo blob) e pronto
> >> > > > > =D
>
> >> > > > > []s
>
> >> > > > > 2009/12/1 Janderson <janderson...@hotmail.com>
>
> >> > > > > > hummm, vlw..entendi Marcel, no caso pego o stream e salvo no
> >> > > > > > banco,
> >> > > > > > além disso acho que vou colocar um campo para saber o tipo de
> >> > > > > > documento, .doc, .pdf para depois abrir esses arquivos, acho
> >> > > > > > que isso
> >> > > > > > é o suficiente para o que eu queria, vou testar aqui agora...
> >> > > obrigado
>
> >> > > > > > On 1 dez, 10:22, Marcel Araujo <ceceld...@gmail.com> wrote:
> >> > > > > > > Não tem nada de diferente quanto a salva no ftp, apenas no
> >> > > > > > > teu
> >> > > modelo de
> >> > > > > > > negócios ao invés de mover o arquivo do diretório temporário
> >> > > > > > > ou do
> >> > > stream
> >> > > > > > > para a pasta destino, deverás ler o conteúdo do arquivo
> >> > > > > > > temporário
> >> > > e
> >> > > > > > salvar
> >> > > > > > > no banco.
>
> >> > > > > > > Claro, tudo dentro de umas validações de segunrança básicas.
>
> >> > > > > > > 2009/12/1 Janderson <janderson...@hotmail.com>
>
> ...
>
> mais »
>
>  smime.p7s
> 6KExibirDownload
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a