[Roma.pm] domanda

umbertobernardelli at live.it umbertobernardelli at live.it
Sat Sep 26 15:33:06 PDT 2009


I risultati non sono positivi, ho provato con questo file.pl a caricare immagini sul database MySQL.
#!/usr/bin/perl -w
use warnings;
use strict;
use File::Slurp qw( read_file );
use CGI qw( :standard );
use DBI;
# Which database and which file from the filesystem?
my $myfile = "picture10.png";
my $dbname = "foto";

# Make a connection to your database
my $dbh = DBI->connect("dbi:mysql:database=$dbname") || die "Cannot open db";

# Open the file
open MYFILE, $myfile  or die "Cannot open file";
my $data;

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

close MYFILE;

my $sql = "INSERT INTO fotograf (imagefoto) VALUES (?)";
my $sth = $dbh->prepare($sql);
my $numrows = $sth->execute($data);

# We are done with the statement handle
$sth->finish;
# I am finished with this connection to the database
$dbh->disconnect;

$sql = "SELECT imagefoto FROM fotograf";
$sth = $dbh->prepare($sql);
$numrows = $sth->execute;

open OUTPUT, ">output.png";
my $ref = $sth->fetchrow_hashref;
my $newdata = $$ref{'imagefoto'};
print OUTPUT $newdata;
close OUTPUT;
$sth->finish;
$dbh->disconnect;
======================================
#mysql=====================================
drop database IF EXISTS foto;
CREATE DATABASE foto;
use foto;

CREATE TABLE fotograf (
     id tinyint(3) unsigned NOT NULL auto_increment,
     imagefoto blob NOT NULL,
     PRIMARY KEY (id)
     );


Mi aspetto di vedere l'immagine nella pagina html
ma non c'è.
saluti




From: Flavio Poletti 
Sent: Thursday, September 17, 2009 8:24 AM
To: roma at pm.org 
Subject: Re: [Roma.pm] domanda


1. non hai detto se ci sono stati risultati positivi con quanto suggerito nell'email precedente 
2. non è chiaro come *estrai* l'immagine da MySQL e come fai a dire che "qualcosa non va". Ad esempio: usi un altro script in Perl? Fai un accesso con qualche altro strumento/linguaggio in modo da garantirti? Se usi uno script Perl posta anche quello.
3. ancora non ho capito di preciso *cosa* non vada


2009/9/17 <umbertobernardelli at live.it>




  From: Flavio Poletti 
  Sent: Wednesday, September 16, 2009 2:02 AM
  To: roma at pm.org 
  Subject: Re: [Roma.pm] domanda


  utilizzo Widows XP professional  e ho aggiunto il server IIS:
  il mio scopo è salvare l'immagine su MySQL e dopo con GD::Image fare un confronto
  con un'altra immagine.
  Ciao
  ****************************************************************************


  Continuo a non capire quali siano le difficoltà, visto che "DBI funziona, con Mysql funziona". 


  Non vorrei che il problema fosse altrove, comunque. Su che sistema ti trovi? Se Windows, la lettura del file è errata perché devi impostare binmode (non fa male farlo nel caso generale, comunque). Consiglio anche di utilizzare filehandle con variabili lessicali e la versione a tre parametri di open(). Insomma:


  my $data;
  { # restringo lo scope
     local $/; # per leggere il file tutto in una volta
     open my $fh, '<', $myfile
        or die "open('$myfile'): $!";
     binmode $fh;
     $data = <$fh>;
     close $fh;
  }


  che spesso puoi trovare "riassunto" come segue:


  my $data = do { open my $fh, '<', $myfile or die "open(): $!"; binmode $fh; local $/; <$fh> };




  In questi casi è molto comodo utilizzare File::Slurp:


  use File::Slurp qw( read_file );
  my $data = read_file($myfile); # voilà




  In questo modo, sei sicuro che non vengano operate trasformazioni sui dati in ingresso quando leggi da file.


  Da notare che impostando $/ ad undef (quando fai "local" per default il valore inserito è proprio undef) praticamente stai dicendo che il separatore dei "record d'ingresso" è non definito, per cui Perl tratta l'intero file come un 'record' e te lo legge tutto in una botta.


  Altra cosa... ma come controlli che il contenuto del blob corrisponda a quello che ti aspetti?!?


  Ciao,


      Flavio.

   

  _______________________________________________
  Roma mailing list
  Roma at pm.org
  http://mail.pm.org/mailman/listinfo/roma





--------------------------------------------------------------------------------


_______________________________________________
Roma mailing list
Roma at pm.org
http://mail.pm.org/mailman/listinfo/roma
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/roma/attachments/20090927/b0aca3ef/attachment.html>


More information about the Roma mailing list