短的Base64編碼程序:
# to_base64.pl
use MIME::Base64 qw(encode_base64);
open (IMAGE, $ARGV[0]) || die "$!";
binmode(IMAGE);
local $/;
my $file_contents = <IMAGE>;
close IMAGE;
open (B64, ">$ARGV[0].b64") || die $!;
print B64 encode_base64($file_contents);
close B64;
print "output file is $ARGV[0].b64\n";
與此命令行使用它:
perl to_base64.pl image_file.jpg
它寫入一個含有Base64編碼輸入的文件名爲image_file.jpg.b64
文件。
要解碼的Base64,你可以使用這個腳本:
# decode_base64.pl
use MIME::Base64 qw(decode_base64);
open (B64, $ARGV[0]) || die "$!";
local $/;
my $base64_string = <B64>;
close B64;
my $filename;
if ($ARGV[0] =~ /.\.b64$/i) {
$filename = substr($ARGV[0], 0, length($ARGV[0]) - 4);
}
else {
$filename = "$ARGV[0].bin";
}
open (IMAGE, ">$filename") || die $!;
binmode(IMAGE);
print IMAGE decode_base64($base64_string);
close IMAGE;
print "output file is $filename\n";
使用此命令行調用它:
perl decode_base64.pl my_base64_file.b64
如果作爲參數提供給該腳本文件名以.b64
結束這些尾隨4字符將被刪除:image_file.jpg.b64
=>image_file.jpg
。否則,該腳本會將.bin
添加到輸入文件名以獲取輸出文件名。
反斜槓在雙引號內有特殊含義。你可以使用單引號('C:\ wamp \ www \ image.png''),用更多的反斜槓('「C:\\ wamp \\ www \\ image.png」')轉義反斜槓,或者只是使用正斜槓(確實如此):'「C:/wamp/www/image.png」'。 – mob
Windows上的Mime :: Base64模塊似乎有問題(至少在ActiveState perl 5.8.8中) - 是的,我試圖用'使用Mime :: Base64 qw(decode_base64)'導入該子例程。 –