Aproveitando, como que eu defino a extensão do arquivo ByteArrayInputStream? Por exemplo, eu gravo um arquivo .wmv e ele me retorna o mesmo arquivo mas como .asx…
Como que eu arrumo isso?
Eu estava pensando em usar a classe FileDownload onde eu informo o tipo do objeto, está correto? A tag consequiria interpretar essa classe?
O máximo que vc pode fazer é gravar o seu byte[] num arquivo, descrito por um File:
Filefile=newFile("meuarquivo.dat");//Criamos um nome para o arquivoBufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(file));//Criamos o arquivobos.write(bytes);//Gravamos os bytes lábos.close();//Fechamos o stream.
Não entendi sua segunda pergunta. O ByteArrayInputStream não guarda qualquer informação sobre nome ou estrutura do arquivo.
R
Rafael_Guerreiro
Então como que eu resolveria este problema? Eu estou retornando uma extensão diferente da que eu gravei…
A propósito, isso é um campo BLOB e eu estou gravando e tentando pegar. Mas para fazer com vídeos está mais complicado…
V
ViniGodoy
Você deve gravar a mesma extensão. Para isso, guarde a extensão no banco.
As classes de stream só enxergam bytes. Para ela tanto faz o nome que você dá para esses bytes.
R
Rafael_Guerreiro
Então como que eu faço para retornar um ByteArrayInputStream com o nome que eu desejar?
V
ViniGodoy
O nome você define na hora de gravar o stream, como fiz acima.
R
Rafael_Guerreiro
Na verdade eu não quero gravar arquivos fisicamente, eles são gravados em campos BLOB e quando solicitados, eu os mostro na página HTML…
Com imagens funciona muito bem, mas com vídeos não, ele troca a extensão…
Q
quebrado
vc precisa da extensão. Senão como vc vai saber o que gravou? :roll:
t+
V
ViniGodoy
É como eu falei. Então vc grava em outra coluna qual extensão aqueles dados do blob tem.
Lembre-se blobs e stream trabalham com bytes brutos. Eles não sabem o que aqueles bytes representam. Essa informação adicional você tem que guardar em algum lugar, e fornecer para quem lê esses dados.
R
Rafael_Guerreiro
Então, eu devolvo esses bytes como um ByteArrayInputStream e dessa forma eu os visualizo em uma IMG tag…
W
wiantmor
Pessoal, estou com dúvidas sobre o campo BLOB (Oracle PL/SQL).
É possível capturar o nome e extensão do arquivo dentro deste campo?
Ou o campo Binário não armazena o arquivo e seu nome com a extensão?
Obrigado.
R
Rafael_Guerreiro
O campo Blob só armazena os bytes.
Como ele é lido externamente (nome, extensão, tamanho), não.
W
wiantmor
Rafael Guerreiro:
O campo Blob só armazena os bytes.
Como ele é lido externamente (nome, extensão, tamanho), não.
Obrigado por responder Rafael.
Irei armazenar a extensão dos arquivos em um campo separado.
R
Rafael_Ferraro
Pessoa como eu faço a divisão de um arquivo em bytes e depois o salvo em um servidor FTP ?
R
Rafael_Guerreiro
Sugiro você criar um tópico só sobre isso. Não tem nada a ver com o problema postado aqui…
R
Rafael_Ferraro
Ok Rafael, estou sofrendo com isso a horas srrs, obrigado !