Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
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


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
GPT-5.6 per tutti, Codex dentro ChatGPT:...
Le 10 offerte TOP Amazon del weekend in ...
Polestar chiude il miglior primo semestr...
Panasonic S45 e S55 in offerta da 189€: ...
Lefant M5 MAX crolla a 449€: rullo da 20...
Nuova Jeep Avenger elettrica: prima prov...
Le vere offerte sui portatili in Amazon:...
SK Hynix debutta a Wall Street con una r...
QuTech annuncia Tuna-17, un processore q...
Chat Control: il Parlamento europeo viet...
vivo Watch GT 2: stile, salute e autonom...
Il fix di Microsoft Defender è pe...
SentinelOne integra Prompt Security con ...
Ha fotografato Giove con una Game Boy Ca...
Sony RX10 V: tornano le fotocamere bridg...
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: 08:45.


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