#!/usr/local/bin/perl # # Base64 encoder/decoder # use MIME::Base64; use CGI; $q = new CGI; $in_filename = $q->param('in_filename'); $base64text = ''; while( read($in_filename, $buf, 60*57) ) { $base64text .= encode_base64( $buf ); } if( $base64text ne '' ) { print $q->header; print $q->start_html( -title=>'Base64-encoded file contents', -onLoad=>"window.parent.base64Encoded(document.getElementById('in_base64'))" ) . "\n"; print $q->startform( -action=>'#' ); print $q->textarea( -id=>'in_base64', -default=>$base64text ) . "\n"; print $q->endform() . "\n"; print $q->end_html() . "\n"; } else { $out_filename = $q->param('out_filename'); $out_filename =~ s/[\"\n]//g ; print $q->header( -type=>'application/octet-stream', -Content_Disposition=>"attachment; filename=\"" . $out_filename . "\"" ); print decode_base64($q->param('out_base64')); } exit;