/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
file attachment
Fra : Palle


Dato : 07-06-04 08:49

Hej gruppe.....

Jeg har fundet en code som jeg bruger til file attachment i mail.
Filen der skal vedhæftes er en .txt fil på 1800 byte
men mailen er kun vedhæftet en fil på 270 byte som er de sidste 270 byte af
den totale fil.....
Hvad er galt ?

>> @code64 = ('A'..'Z', 'a'..'z', '0'..'9', '+', '/');

>> grep($bin64{$code64[$_]} = unpack('B6', pack('C', $_ * 4)), 0 .. 63);
>> %unbin64 = reverse %bin64;

# encode into BASE64 encoded string.
>> sub encode64 {
>> local($mod3) = length($_[$[]) % 3;
>> local($coded) = unpack('B*', $_[$[]) . ('', '0000', '00')[$mod3];
>> $coded =~ s/.{6}/$unbin64{$&}/g;
>> $coded . ('', '==', '=')[$mod3];
>> }

>> $encoded = &encode64($testfil);

$encoded er 270 byte af de sidste 270 byte i $testfil
Jeg er nybegynder og kan ikke rigtig gennemskue hvad der foregår i sub
encode64
Er der nogen der kan hjælpe med mit problem ?

Hilsen
Palle




 
 
Lars Balker Rasmusse~ (07-06-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 07-06-04 08:55

"Palle" <palle@thyholm.com> writes:
> Hvad er galt ?

Brug CPANs MIME::Base64 i stedet for noget kode du ikke kan gennemskue.

use MIME::Base64;
$encoded = encode_base64($text);
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Palle (07-06-2004)
Kommentar
Fra : Palle


Dato : 07-06-04 11:27


"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
>
> Brug CPANs MIME::Base64 i stedet for noget kode du ikke kan gennemskue.
>
> use MIME::Base64;
> $encoded = encode_base64($text);

Hej Lars.........

Det virker takker

Hilsen
Palle



Palle (07-06-2004)
Kommentar
Fra : Palle


Dato : 07-06-04 20:59


> "Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
> >
> > Brug CPANs MIME::Base64 i stedet for noget kode du ikke kan gennemskue.
> >
> > use MIME::Base64;
> > $encoded = encode_base64($text);
>

Ja det virker meeeen der er ingen "line break" i filen
char 0a er overført men virker ikke som EOL
jeg har prøvet både med \n og \x0d

Hilsen
Palle




Lars Balker Rasmusse~ (07-06-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 07-06-04 22:06

"Palle" <palle@thyholm.com> writes:
>> "Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
>> >
>> > Brug CPANs MIME::Base64 i stedet for noget kode du ikke kan gennemskue.
>> >
>> > use MIME::Base64;
>> > $encoded = encode_base64($text);
>>
>
> Ja det virker meeeen der er ingen "line break" i filen
> char 0a er overført men virker ikke som EOL
> jeg har prøvet både med \n og \x0d

Jeg er ikke helt sikker på at jeg forstår hvad du mener, men hvis du
vil have en ny linie efter $encoded, skriver du da bare "$encoded\n"
ud - hvis du putter \n'en i $text, bliver den selvfølgelig encoded
sammen med resten.
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Lars Balker Rasmusse~ (08-06-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 08-06-04 06:35

"Palle" <palle@thyholm.com> writes:
> Jeg har prøvet :
>
>>> foreach $tekst (@tekst_data)
>>> {
>>> $encoded = encode_base64($tekst);
>>> push(@encoded_data,$encoded);
>>> }
>
> og senere i mailen flg.
>
>>> foreach $tekst (@encoded_data)
>>> {
>>> print MAIL "$tekst\n";
>>> }

Sørg for at have alle linierne i en enkelt scalar variabel,
INKL. newlines. Denne kan du så sende igennem encode_base64.
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Lars Balker Rasmusse~ (09-06-2004)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 09-06-04 08:01

"Palle" <palle@thyholm.com> writes:
> Det var jo sådan det var før...........og der er ingen linebreak efter
> encode_base64
>
>>> $tekst =
> "Linie1\nLinie2\nLinie3\nLinie4\nLinie5\nLinie6\nLinie7\nLinie8\n";
>>> $encoded = encode_base64($tekst);

Jamen, hvad er så problemet? Ovenstående gør præcist det det skal:

% perl -e 'use MIME::Base64; $tekst = "Linie1\nLinie2\nLinie3\nLinie4\nLinie5\nLinie6\nLinie7\nLinie8\n"; print encode_base64($tekst)'
TGluaWUxCkxpbmllMgpMaW5pZTMKTGluaWU0CkxpbmllNQpMaW5pZTYKTGluaWU3CkxpbmllOAo=

% perl -e 'use MIME::Base64; print decode_base64("TGluaWUxCkxpbmllMgpMaW5pZTMKTGluaWU0CkxpbmllNQpMaW5pZTYKTGluaWU3CkxpbmllOAo=")'
Linie1
Linie2
Linie3
Linie4
Linie5
Linie6
Linie7
Linie8
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste