Salvare immagine ridimensionata in MySql con GD

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao Ragazzi,

sto provando a salvare una "versione" ridimensionata di una foto selezionata dal pc , usando Gd....

il codice che uso è questo:
PHP:
/////-----TEST RIMDIMENSIONAMENTO FOTO------------//////////////

// Ottengo le informazioni sull'immagine originale
list($width, $height, $type, $attr) = getimagesize($_FILES['foto']['tmp_name']);

// Creo la versione 120*90 dell'immagine (thumbnail)
$thumb = imagecreatetruecolor(120, 90);
$source = imagecreatefromjpeg($_FILES['foto']['tmp_name']);
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);

// Salvo l'immagine ridimensionata
 imagejpeg($thumb, $_FILES['foto']['tmp_name']."jpg", 75);


/////-----FINE   TEST RIMDIMENSIONAMENTO FOTO------------///////

Nella query di inserimento nel DB , insieme agli altri campi , per la foto ridimensionata inserisco la variabile $thumb....

Il risultato è che la queri va a buon fine ma..... nel db viene salvato un file che (aperto col blocco note) riporta solo " Resource ID #9 ...... e poi quando cerco di visualizzare l'immagine ... non vedo nulla ...

Dove sbaglio ???????
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Bah......provo e riprovo ma nulla !!!

PHP:
$source =base64_encode(file_get_contents($_FILES['foto']['tmp_name']));

PHP:
$test = imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);

$miniatura = $test;

PHP:
$miniatura = base64_encode($test);

E' proprio il criterio che mi sfugge.....devo ammetterlo !
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Niente da fare !!! ....

Piu' "Googolo" più trovo script per archiviare nel filesystem ... richiamarle da cartelle ...
ma su come Ridimensionarle salverle in MySql..... nulla !!!!1

Come fare ?
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao ragazzi,

scusate la latitanza ma ...dei problemini mi hanno portato lontatno.
Torno per richiedervi una mano su come riuscir a ridimensionare (in termini di MB) le immagini che inserisco nel mio DB .
ES: carico un' immagine da 4 mega e vorrei che nel DB occupasse , per dire , 512k .

Mi date una mano , non riesco a venirne fuori. Vi allego un esempio della tabella che vorrei realizzare , in realtà è gia tutto fatto .... manca la questione del ridimensionamento.

Grazie mille

__Cattura.JPG
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
É come dire "Vorrei parcheggiare la mia auto di 5m in uno spazio di 3,5m..." Ci riusciresti? NO.
Per ridimensionarla dovresti interpolare l'immagine, eliminare canali, abbassare la profondità etc... Questo si traduce con immagini di scarsa qualità.
NB: Non si salva quasi mai l'immagine nel DB a meno che tu non debba criptare il campo e/o la tabella e/o il database....
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
É come dire "Vorrei parcheggiare la mia auto di 5m in uno spazio di 3,5m..." Ci riusciresti? NO.
Per ridimensionarla dovresti interpolare l'immagine, eliminare canali, abbassare la profondità etc... Questo si traduce con immagini di scarsa qualità.
NB: Non si salva quasi mai l'immagine nel DB a meno che tu non debba criptare il campo e/o la tabella e/o il database....
Grazie per la risposta Macus....

per me, ridurre la qualità delle immagini non sarebbe un problema .... quindi se si potesse fare ...mi andrebbe bene.

Altro quesito è : Non si salvano le immagini nel DB...ok ! .... ma come posso fare per salvarle in una cartella sul server e poi visualizzarle nella tabella come quella che ho inserito sopra ?
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao, grazie anche alle tue dritte, alla fine ho optato per salvare le immagini nel db, tanto sono molto piccole. Ti ringrazio

Volevo chiederti un altro consiglio. Ad ogni inserimento nella mia tabella, mi faccio arrivare una mail con allegata la foto. usando questo script

In pratica raddoppiando le difinizioni degli allegati...... ma ho fallito miseramente...

Illuminami :(
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Converrebbe inviare la mail in formato html.....
PHP:
$img='';
foreach($_FILES as $k=>$v){

$img.='<img src="'.$v['tmp_name'].'" />';

}
print_r($img);
In alternativa puoi creare gli allegati aprendo un buffer all'interno del foreach!
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Converrebbe inviare la mail in formato html.....
PHP:
$img='';
foreach($_FILES as $k=>$v){

$img.='<img src="'.$v['tmp_name'].'" />';

}
print_r($img);
In alternativa puoi creare gli allegati aprendo un buffer all'interno del foreach!
Grazie mille Macus !

Come al solito disponibilissimo !

Ora provo la soluzione HTML ma .... visto che mi piacerebbe di piu' inviarle come allegati .... mi studio un po il discorso del "creare gli allegati aprendo un buffer all'interno del foreach! "

Faccio qualche test e ti faccio sapere

Grazie
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Niente da fare macus !!! :(:(

Continuando con il metodo che ti avevo sottoposto all'inizio ( quello di raddoppiare le definizioni degli allegati ) ... succede una cosa strana....come se i due allegati venissero "fusi" ... ricevo un'allegato con le dimensioni ( kb ) totali delle due immagini , il nome allegato fa riferimento al secondo file , e l'immagine è del primo file ...o_Oo_Oo_Oo_O

Che cavolo combino ?.....

PHP:
// Valorizzo le variabili relative all'allegato
$allegato1 = $_FILES['foto1']['tmp_name'];
$allegato1_type = $_FILES['foto1']['type'];
$allegato1_name = $_FILES['foto1']['name'];

$allegato2 = $_FILES['foto2']['tmp_name'];
$allegato2_type = $_FILES['foto2']['type'];
$allegato2_name = $_FILES['foto2']['name'];

// Creo altre due variabili ad uno interno
$headers = "From: " . $mittente;
$msg = "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegato1))
{
  // Apro e leggo il file allegato
  $file1 = fopen($allegato1,'rb');
  $data1 = fread($file1, filesize($allegato1));
  fclose($file1);
 
$file2 = fopen($allegato2,'rb');
$data2 = fread($file2, filesize($allegato2));
fclose($file2);


  $data1 = chunk_split(base64_encode($data1));
 
$data2 = chunk_split(base64_encode($data2));

  // Genero il "separatore"

  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 
  // Aggiungo le intestazioni necessarie per l'allegato
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " boundary=\"{$mime_boundary}\"";

  // Definisco il tipo di messaggio (MIME/multi-part)
  $msg .= "This is a multi-part message in MIME format.\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Questa è la parte "testuale" del messaggio
  $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
  $msg .= $messaggio . "\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Aggiungo l'allegato al messaggio
  $msg .= "Content-Disposition: attachment; filename=\"{$allegato1_name}\"\n";
 
  $msg .= "Content-Disposition: attachment; filename=\"{$allegato2_name}\"\n";

  $msg .= "Content-Transfer-Encoding: base64\n\n";

$msg .= $data1 . "\n\n";
 
$msg .= $data2 . "\n\n";

  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Selezionare un'immagine e salvare la selezione Photoshop 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
D [Javascript] salvare immagine canvas - paypal Javascript 0
F Cliccare e salvare src immagine HTML e CSS 2
I Salvare indirizzo immagine in database PHP 6
JellyBelly Salvare un'immagine codificata in base64 PHP 16
E fpdf salvare e aprire il file PHP 4
I salvare testo chat PHP 4
E Salvare immagini PHP 0
L salvare codice html in mysql PHP 3
L salvare somma con sottrazione PHP 1
M Salvare coordinate Maps nel DB PHP 2
D SALVARE "MASCHERA" + "ALLEGATO PDF" IN UN UNICO PDF MS Access 0
A Twitter aggiungere tweet a campagna esistente o salvare pubblico Social Media Marketing 0
D Salvare in diversi campi mysql con diversi ID PHP 0
M Salvare JSONObject in Shared Preference Sviluppo app per Android 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M [PHP] FPDF Salvare su disco C locale Windows PHP 3
C Photoshop CS 6 salvare una modifica Photoshop 0
L [PHP] Salvare csv da form dati PHP 5
G php salvare file in campo blob mysql: massimo 4MB PHP 1
M Salvare pagine web come segnalibro con istruzioni javascript Javascript 0
L Salvare posizione maps Sviluppo app per Android 0
G [PHP] SALVARE RECORD ESTRATTI DA DATABASE PHP 6
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
P [SOLVED] salvare il TCPDF output in mysql e rivisualizzarlo PHP 3
M Salvare i dati nel db e aprire altra pagina php PHP 7
M Form ASP su MsSQL salvare 2 campi in 1 Classic ASP 4
V [PHP] Salvare campo radio in db e leggerlo PHP 15
S [PHP] Salvare dati tabella in formato exel PHP 0
Benix89 Come salvare radio button selezionato Magento 1
Benix89 Salvare radio button selezionato PHP 2
P Come salvare il proprio diario di fb Discussioni Varie 0
P Salvare i dati restituiti dopo autenticazione OAuth2 Javascript 0
M Salvare in tabella link file importato PHP 1
M Cartella predefinita dove salvare i backup PHP 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 7
C Salvare il click su di un Button Sviluppo app per Android 9
Emix Salvare documenti in DB PHP 3
D salvare righe dinamicamente PHP 3
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C Salvare dati form in un file di testo PHP 1
M Salvare select con cookie PHP 1
IImanuII Salvare/recuperare html da un db PHP 5
S Salvare dei dati in una determinata tabella in base al select che l'utente seleziona PHP 8
M salvare una activity e richiamarla Sviluppo app per Android 6

Discussioni simili