none
arquivo "corrompido" após download RRS feed

  • Pergunta

  • Olá.

    eu tenho um campo blob numa tabela em um banco oracle, onde eu guardo o arquivo que o usuario faz o upload, e um campo string para guardar o nome do arquivo.

    o problema é que, ao fazer o download do arquivo, ele é gravado no computador normalmente com o nome originalmente gravado, mas ao ser aberto, ele dá uma mensagem dizendo que o arquivo está corrompido, ao se clicar em ok para continuar, o arquivo abre normalmente sem alteração nenhuma.

    eu tenho como fazer isso sem essa mensagem de arquivo corrompido? porque dá essa mensagem se o arquivo está normal e abre sem problemas?

    obrigado.

    segunda-feira, 22 de novembro de 2010 17:33

Todas as Respostas

  • Joao,

       Isso depende do tipo de arquivo... por exemplo um jpg pode estar corrompido e mesmo assim ser aberto sem apresentar grandes "defeitos", eu aconcelho a inicialmente verificar se o CRC do arquivo recebido é o mesmo do arquivo enviado para saber se relamente foram corrompidos os dados... e dessa forma descobri mais exatamente quando (se foi no upload... na gravação.. no download...)

    Calculando CRC de Strings (Texto), Array’s e Arquivos
    http://www.dotnetmax.org/2009/04/22/calculando-crc-de-strings-texto-arrays-e-arquivos/


    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    segunda-feira, 22 de novembro de 2010 17:58
    Moderador
  • eu fiz uns testes com outros tipos de arquivos (imagens, sons, pdf, txt) e eles funcionam sem dar a mensagem de corrupção.

    os arquivos da microsoft com office 97 e 2000 também funcionam sem problemas, od com extensão "x" (.docx, etc) é que dão problema.

    tentei renomear o arquivo para .doc mas ele continua com o erro.

    terça-feira, 23 de novembro de 2010 17:28
  • João tenta chamar um dispose depois que vc gravar
    terça-feira, 23 de novembro de 2010 19:48
  • Entao joão... os docx na verdade são um arquivo zip com um monte de xml dentro...

    e são justamente os arquivos zip que se tiverem 1 bite que seje errado, não se pode abrir ... os demais (imagem, sons, pdf, e prinicpalmente txt) vc consegue abrir sem problemas...

    CRC é uma ferramente que gera um numero de identificação para o arquivo, se vc altera um bite neste arquivo, o codigo gerado por ele é totalmente diferente...

    a questao ai é descobrir em qual momento seu arquivo estar sendo corrompido... se é na gravação, quando vc faz upload ou o download dele etc... tirando o CRC do arquivo em cada processo é q vc vai achar o ponto que esta com o erro.


    Eu não sou pago para postar aqui... faço simplesmente porque eu quero....
    terça-feira, 23 de novembro de 2010 21:12
    Moderador
  • Então Rui... eu usei os métodos do blog que você me indicou e tanto quando o array de bytes é gravado quanto é lido, o array tem 64 posições e o conteúdo é o mesmo... a princípio a leitura e gravação não está corrompendo o arquivo, tanto que se eu der ok na mensagem de erro, o arquivo abre normalmente...

    o problema é que a mensagem continua né....

    :(

    quarta-feira, 24 de novembro de 2010 17:17
  • Tem como informar a mensagem exatamente como aparece e se possivel ainda o log do erro (stack trace) ?
    Eu não sou pago para postar aqui... faço simplesmente porque eu quero....
    quarta-feira, 24 de novembro de 2010 17:24
    Moderador
  • o erro aparece quando o Word abre e tenta abrir o arquivo.

    uma message window aparece com o erro:

    "O arquivo XML aberto do Office Os.docx não pode ser aberto porque há problemas com o conteúdo."

    aí tem as opções OK e Detalhes

    dentro de detalhes tem a frase:

    "O arquivo está corrompido e não pode ser aberto."

    quando eu aperto ok aparece outra mensagem:

    "O Word encontrou conteúdo ilegível em Os.docx. Deseja recuperar o conteúdo deste documento? Caso você confie na fonte do documento, clique em Sim."

    se eu clico em não, a janela se fecha e o arquivo não abre.

    se eu clico em sim, a janela se fecha e o arquivo abre normalmente sem problemas.

    quarta-feira, 24 de novembro de 2010 18:11
  • Então.. não é que o arquivo esta abrindo sem problemas... o fato é que o Word esta efetuando um processo de restauração do arquivo por amostragem...

    Em algum momento esta gerando o erro no arquivo, se não eh no envio e nem no recebimento... então é na criação do arquivo.... de onde esse arquivo veio... so acontece com 1 arquivo especifico ou com todos os docx que vc usa ?


    Eu não sou pago para postar aqui... faço simplesmente porque eu quero....
    quarta-feira, 24 de novembro de 2010 23:18
    Moderador
  • entendi, isso acontece com todos os arquivo do office 2007. todos que tem "x" no final.

     

    quinta-feira, 25 de novembro de 2010 11:19