Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-12-2006, 23:11   #1
scoppola_1977
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 10
php e immagini

Dopo aver creato una tabella con la seguente query:

create table file_upload (id int(11) UNSIGNED NOT NULL auto_increment, bin_data blob, filename varchar(150) default NULL
, filesize varchar(50) default NULL, filetype varchar(50) default NULL, width int(4) default NULL,
height int(4) default NULL , thumb mediumblob NOT NULL, PRIMARY KEY (id)) TYPE=MyISAM;


Immetto in essa le immagini e le relative informazioni richieste dai campi con i seguenti due script:

upload.htm

<html>
<head>
<title>PHP Professionale</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="formUpload" enctype="multipart/form-data" method="post" action="upload02.php">
<p>
<input name="fileUP" type="file" id="fileUP">
</p>
<p>
<input type="submit" name="Submit" value="Invia">
</p>
</form>
</body>
</html>


il quale una volta immesso l'indirizzo dell' immagine e cliccato sul pulsante invia mi mostra in una nuova pagina chiamata upload2.php l'anteprima dell'immagine e carica i dati sul DB :

upload02.php :

<?php
// se riceviamo i dati dal form
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_FILES['fileUP'] ['size'] > 0 )
$fileName = $_FILES['fileUP']['name'];
$tmpName = $_FILES['fileUP']['tmp_name'];
$fileSize = $_FILES['fileUP']['size'];
$fileMimeSize = $_FILES['fileUP']['type'];
// Ricaviamo le informazioni sull'immagine
list($width,$height,$type,$attr) = getimagesize( $_FILES['fileUP']['tmp_name']);
// controlliamo che il lato maggiore dell'immagine non superi i 640 pixel
if(($width > 640 ) || ($height > 640))
{$msg = "<p>Immagine di dimensione superiori al consentito&lt</p>";}
// in base al tipo di immagine creiamo un tipo temporanea del tipo corretto
switch ($type){
case 1: // gif
$img_in=imagecreatefromgif($tmpName) or die ("impossibile creare l'immagine");
if(!isset($extension))
{$extension = "jpg";}
break;
case 2: // jpg
$img_in=imagecreatefromjpeg($tmpName) or die ("impossibile creare l'immagine");
if(!isset($extension))
{$extension = "jpg";}
break;
case 3: // png
$img_in=imagecreatefrompng($tmpName) or die ("impossibile creare l'immagine");
if(!isset($extension))
{$extension = "png";}
break;
default:
die("impossibile creare l'immagine");
}
// Calcoliamo la percentuale di ridimensionamento in base alle dimensioni finali desederate
$thumb_max_width = 100;
$thumb_max_height = 100;
$percentuale = ($width > $height) ? $thumb_max_width / $width: $thumb_max_height / $height;
$th_width = $width * $percentuale;
$th_height = $height * $percentuale;
$img_new = imagecreatetruecolor($th_width,$th_height);
imagecopyresampled($img_new,$img_in,0,0,0,0,$th_wi dth,$th_height,$width,$height);
if($fileSize > 64000) {
die ("dimensione in KB dell'immagine superiore al consentito.");
}
// prepariamo i dati per l'inserimento in MYSQL
ob_start();
// creiamo il thumbnail in formato in jpeg
imagejpeg($img_new);
$thumbTemp = ob_get_contents();
$thumbnail = addslashes($thumbTemp);
ob_end_clean();
$immagine = addslashes(fread(fopen($tmpName, "r"), $fileSize));
// apriamo la connessione al database
$db_host ="";
$db_user = "";
$db_name = "";
$db_password = "";
$connection = mysql_connect($db_host,$db_user,$db_password) or die ("Impossibile connettersi al server MySQL.\n");
mysql_select_db($db_name,$connection) or die ("Impossibile aprire il database.\n");
// inseriamo i dati nella tabella
$sql = "INSERT INTO file_upload (bin_data, filename , filesize , filetype, width , height , thumb) VALUES ('$immagine' , '$fileName' , '$fileSize' , '$extension' , $width , $height ,'$thumbnail')";

$sql_result = mysql_query($sql,$connection) or die (mysql_error());
$id = mysql_insert_id();
// chiudiamo la commessione
mysql_close($connection);

// a seconda del tipo di immagine inviamo al browser l'header corretto
switch($extension) {
case "gif":
header("content-type:image/gif");
imagejpeg($img_new);
exit;
case "jpg":
header("content_type:image/jpeg");
imagejpeg($img_new);
exit;
case "png":
header("content_type:image/png");
imagepng($img_new);
exit;
default:
die ("impossibile visualizzare l'immagine");
}

?>

fino a qui tutto bene, i dolori incominciano ora, perchè quando clicco sul file visualizza.php mi compare una tabellina di sfondo grigio chiaro che dovrebbe mostrarmi le immagini in miniatura e una volta cliccato sulle immagini in miniatura dovrebbero apparire le immagini in una finestra di grandezza preimpostate, ma invece mi compare solo la tabellina con al posto delle immagini delle x e quando clicco su di esse si apre una finestra nera di dimensioni preimpostate ma con al posto della immagine grande una x nell'angolo superiore sinistro:

visualizza.php:


<html>
<head>
<title></title>
<script language="JavaScript">
/* funzione javascript per aprire le immagini in una nuova finestra di dimensione prefissata */
function openImg(id,imgW,imgH) {

var winWidth = eval(imgW) + 20;
var winHeight = eval(imgH) + 20;
var features = "width=" + winWidth + ",height=" + winHeight+"";
copWindow = window.open("","PHP",features);
copWindow.document.write("<html>\n<head><title>PHP professionale </title></head>\n");
copWindow.document.write("<body bgcolor='#000000'>\n");
copWindow.document.write("<a href='javascript:window.close();'>");
copWindow.document.write("<img src='/immagine.php?id="+id+"'width='"+imgW+"'height='"+i mgH+"' border='0' title='clicca per chiudere'></a>\n");
copWindow.document.write("</body>\n</html>");
}
</script>
</head>
<body>
<?php
// connessione al database
$db_host = "";
$db_user = "";
$db_password = "";
$db_name = "";
$connection = mysql_connect($db_host,$db_user,$db_password) or die ("Impossibile connettersi al server Mysql.\n");
mysql_select_db($db_name,$connection) or die ("Impossibile aprire il database.\n");
$sql = "SELECT id,filename,filetype,width,height FROM file_upload ORDER BY id";
$sql_result = mysql_query($sql,$connection) or die (mysql_error());
$tot = mysql_num_rows($sql_result);
print "<p>&nbsp;</p><table border='0' align='center' cellpadding='5' cellspacing='1' bgcolor='#CCCCCC'>\n";
$i=0;
while($ValoriRiga=mysql_fetch_array($sql_result)) {
$id=$ValoriRiga["id"];
$filename=$ValoriRiga["filename"];
$width=$ValoriRiga["width"];
$height=$ValoriRiga["height"];

if($i==0 || $i%4 ==0)
{
echo "</tr valign=\"top\">\n";
}

print "<td align='center' valign='middle'> <a href=\"javascriptpenImg('$id','$width','$height' )\"> <img src='thumb.php?id=$id' title='clicca per ingrancire' border='0'> </a></td>\n";

if($i > 0 && $i % 4 == 3){
echo "</tr>\n";
}

$i++;
}
for($j=0 ; $j < $tot % 4; $j++){
echo " <td>&nbsp;</td>\n";
}

if($tot-4 >0 ){
echo "</tr>\n";
}

print "</table>";

mysql_free_result($sql_result);
mysql_close($connection);
?>

i seguenti file thumb.php e immagine.php servono a visualizza per visualizzare prima le anteprime nella tabella (thumb.php) e poi l'immagine nella finestra di dimensioni preimpostate (immagine.php)

thumb.php:

<?php
$db_host ="";
$db_user ="";
$db_password ="";
$db_name ="";
$connection = mysql_connect($db_host,$db_user,$db_password) or die ("Impossibile connettersi al server Mysql.\n");
mysql_select_db($db_name,$connection) or die ("Impossibile aprire il database.\n");
// dopo essersi connessi al database, recupera i dati del thumbnail dell'immagine identificata dall'id passato come parametro nell'URL
$sql="SELECT thumb FROM file_upload WHERE id=".$_GET['id']."";
$result=mysql_query($sql) or die ("Error " . mysql_errno() . " : " . mysql_error());
mysql_close($connection);
$riga=mysql_fetch_row($result);
// il thumbnail è salvato in formato JPEG , quindi impostiamo il content/type appropriato nell'header della risposta HTTP
header("Content-type:image/jpeg");
print $riga[0];
exit;
?>


immagine.php:

<?php
$db_host = "";
$db_user = "";
$db_password = "";
$db_name = "";
$connection=mysql_connect($db_host,$db_user,$db_pa ssword) or die ("Impossibile connettersi al server Mysql.\n");
mysql_select_db($db_name,$connection) or die ("Impossibile aprire il database.\n");
// dopo essersi connessi al database, recupera i dati del thumbnail dell'immagine identificata dall'id passato come parametro nell'URL
$sql="SELECT bin_data , filename, filetype FROM file_upload WHERE id=". $_GET['id'] . "";
$result=mysql_query($sql) or die ("Error " . mysql_errno() . " : " . mysql_error());
mysql_close($connection);
$riga=mysql_fetch_row($result);
// a seconda del tipo di immagine impostiamo il content type

switch ($riga[2]) {
case "gif":
header("Content-type:image/gif");
// con questa istruzione impostiamo il nome del file
header("Content-Disposition: inline; filename=$riga[1];");
print $riga[0];
exit;
case "jpg":
header("Content-type:image/jpeg");
header("Content-Disposition: inline; filename=$riga[1];");
print $riga[0];
exit;
case "png":
header("Content-type:image/png");
header("Content-Disposition: inline; filename=$riga[1];");
print $riga[0];
exit;
default:
die ("Impossibile visualizzare l'immagine");
}
?>


c'e qualcuno che puo aiutarmi a visualizzare queste benedette immagini , sono giorni che cerco una soluzione , credo che l'errore sia in questa riga di codice del file Visualizza.php:

print "<td align='center' valign='middle'> <a href=\"javascript:openImg('$id','$width','$height' )\"> <img src='thumb.php?id=$id' title='clicca per ingrancire' border='0'> </a></td>\n";


grazie in anticipo per qualsiasi suggerimento.
scoppola_1977 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
La NASA ha confermato il supporto per il...
Sierra Space ha completato il test acust...
Ryzen 7 5800X3D pronto a tornare sul mer...
NASA: l'amministrazione Trump prosegue s...
L'Iran avrebbe acquistato un satellite p...
VivaTech compie dieci anni e raddoppia p...
Le vendite di CPU si sono ridotte di 25 ...
Starship: SpaceX ha completato lo static...
Huawei FusionSolar Roadshow 2026: l'inno...
Nuovo trailer per Street Fighter: un fil...
Sovranità sui dati: arriva la pri...
Schede video NVIDIA e AMD di nuovo su Ma...
Robot aspirapolvere, TV OLED, iPhone 17 ...
EUREKA J15 Pro Ultra super interessante ...
Intel porta l'AI nei notebook entry-leve...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v