データベースに画像を挿入しようとしています。データベースには という名前のフィールドがimages
あり、そのタイプは BLOB です。画像を挿入しようとしていますが、最初の 2.2KB しか保存されていません。別の画像を挿入しても、データベースには 2.2KB しか保存されません。
アプリケーションでこの画像を表示しようとすると、表示されません。画像ではなく、小さなアイコンです。画像を正しい方法で挿入するにはどうすればよいですか?
use CGI;
my $file = $q->param("file");
$file = 'C:/wamp/bin/apache/apache2.2.22/cgi-bin/images/2.jpg';
open(my $fh, $file);
my $data;
binmode($fh);
read($fh, $data, (stat($fh))[7]);
close($fh);
my $Data = {
table =>'student',
data => {
Image => $fh,
}
};
Data::Insert($Data);
print $q->header;
print $q->start_html(
-title => "student",
);
print $q->end_html;
showImage.pl
my $q = new CGI();
my $handle = Dbm::connection();
$id = $q->param('id_person');
$getimage = $handle->selectrow_array (<<SQLEOF);
SELECT Image
FROM student
WHERE ID = '$id'
SQLEOF
print "Content-Type: image/jpeg\n";
print "Content-length: \n\n";
binmode STDOUT;
print STDOUT $getimage;