[SP-pm] convertendo zip para base64
Renato Santos
renato.cron at gmail.com
Sun Sep 5 08:21:21 PDT 2010
Se for pra enviar por e-mail você pode usar o MIME::Lite
Assim, ele já se vira para converter pra base64: "You don't need to
worry about encoding your message data: this module will do that for
you. It handles the 5 standard MIME encodings."
Mas parece que seu problema é na hora do <$a>
Se não me engano, o perl vai ler o "arquivo" por \n ou \r\n, depende,
E isso pode estar ferrando com voce.
Tente usar o binmode($a) depois do open.
Boa sorte.
2010/9/5 eliane franco <elidmfranco at gmail.com>
>
> ola pessoal,
>
> Estou fazendo um programa que coleta um arquivo.zip e envia via smtp como anexo.
> Ao tentar abrir o anexo que chegou por email, ocorre o seguinte erro:
> End-of-central-directory signature not found. Either this file is not a Zip file, or it constitutes one disk of a multi-part Zip
> Sobre o código:
> use MIME::Base64;
> use Socket;
> Para abrir o arquivo:
> open $a, "<$fname" or exec close_error (" $fname" );
> binmode $a;
> Para ler os dados, estou usando readline e encaminhando para o encode
> $ans='';
> while (<$a>) {
> $ans=$ans.(encode_base64($_));
> }
> close($a) or die "close: $!" ;
> return $ans;
> E o conteúdo dessa variável é encaminhada via socket.
> Eu acho que meu erro está na conversão para Base64, pois já fiz teste com um arquivo já convertido e o zip abriu corretamente.
> Alguém já obteve o erro acima?
> Obrigada pela ajuda.
> []'s
> Eliane
>
>
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
--
Renato Santos
http://www.renatocron.com/blog/
More information about the SaoPaulo-pm
mailing list