Как связать изображения в папке с ее метаданными, хранящимися в mysql в perl?

#java #mysql #perl #metadata

#java #mysql #perl #метаданные

Вопрос:

Я могу сохранить загруженное изображение в папке (названной по ее категории) и связанные с ней данные, такие как информация об загрузчиках, ее категория в mysql, используя приведенный ниже код.

 use strict;
use warnings;
use DBI;
use DBD::mysql;
use CGI;
$query = new CGI;
$uploader_name = $query->param("name");
$filename = $query->param("file");
$category = $query->param("cat");
$uploaded_dir = $category;
print $query->header();
$filename =~ s/.*[/\](.*)/$1/;
$filename =~ s/ /_/g;
$upload_filehandle = $query->upload("file");
$directory_filename = "$upload_dir/$filename";

# upload the file to the server

open UPLOADFILE, ">$directory_filename";
binmode UPLOADFILE;

while ( <$upload_filehandle> )
  {
   print UPLOADFILE;
  }

close UPLOADFILE;

# Open the file
# open MYFILE, $directory_filename || print "Cannot open file";
# my $blob_file;

# Read in the contents
# while (<MYFILE>) 
#  {
#   $blob_file .= $_;
#  }
# close MYFILE;

# make the database connection
my $dbh=DBI->connect("DBI:mysql:database=pics;host=localhost","?","?");
# set the value of your SQL query
$query = "insert into pic(uploader_name, category) values (?, ?) ";

$sth = $dbh->prepare($query);
$sth->execute($uploader_name, $category) || print "Can't access database";

$sth->finish;
$dbh->disconnect;
  

Мне нужны оставшиеся метаданные, такие как цвет, заголовок и т. Д. загруженных изображений.Как это можно сделать? Я слышал об экстракторах метаданных (на java) для этого.Как они работают. Предложите лучшие из них.
Кроме того, как связать изображение с соответствующими метаданными для извлечения?

Ответ №1:

просто сделайте «filename» столбцом в таблице БД, а затем вы сможете найти остальные данные по имени файла.