mysql img (2) non trovo l'img

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Premetto che ho recentemente aperto un post uguale a questo però ho un problema e quindi provo a postare tutto:

- Ho costruito un database costituito da
id INT
nome VARCHAR
tipo VARCHAR
dati BLOB

-ho costruito una index (con vari controllo sull'inserimento di img):

PHP:
<html>

<head>
</head>
<body>

<?php 
// se è stato inviato il file...
if(isset($_POST['invia']))
{
	// se ci sono stati problemi nell'upload del file
	if(!isset($_FILES['image']) OR $_FILES['image']['error'] != UPLOAD_ERR_OK)
	mostra_form("errore nell'invio del file. Riprova");
 
	// connessione e selezione del database
// connessione e selezione del database
include_once('connettti.php');
 
	// recupero alcune informazioni sul file inviato
	$nome_file_temporaneo = $_FILES['image']['tmp_name'];
	$nome_file_vero = $_FILES['image']['name'];
	$tipo_file = $_FILES['image']['type'];
 
	// leggo il contenuto del file
	$dati_file = file_get_contents($nome_file_temporaneo);
 
	// preparo il contenuto del file per la query
	$dati_file = addslashes($dati_file);
	
	$msg='';
	
	if ($_FILES['image']['size'] > 61440) {
      $msg .="<br /> - Il file non deve superare i 60 KB!<br />";
	  
    }
	
	// Ottengo le informazioni sull'immagine
    list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
    // Controllo che le dimensioni (in pixel) non superino 160x180
    if (($width > 160) || ($height > 180)) {
      $msg .= "<br /> - Il file pu&ograve; avere un massimo di 150 px di larghezza per 70 px di altezza (consigliata 70px x 150px)!<br /> Se le dimensioni non
	  rientrano utilizzare un programma per il ritocco fotografico<br />";      
    }
	
	
	//recupero i nomi dei file
	
	if(!@mysql_select_db('img')){echo "<br />Impossibile selezionare il database delle Immagini in questo momento, se il problmema persiste contattare
	l'amministratore del sistema<br />". mysql_error();}
	$sql=mysql_query("SELECT nome FROM tabella_files");
	
	//preparo l'array che andrà compilato
	$array=array();
	while($row=mysql_fetch_array($sql)){
		$array[]=$row['nome'];
	}
	
	$err=0;
	foreach ($array as $array_confr){
		
		if($_FILES['image']['name']==$array_confr){
		$err += 1;
		}
	
	}
	
	if($err>0){$msg .= "<br /> - File già esistente sul server. Rinominarlo e riprovare<br />";}
	
	
	
    



	
	if($msg==''){
		 
				// query per inserire il file nel DB
				$query = "INSERT INTO tabella_files SET
							nome = '$nome_file_vero', 
							tipo = '$tipo_file', 
							dati = '$dati_file'"; 
			 
				mysql_query($query)
				OR die('Query non valida: ' . mysql_error());
				 
				// mostro nuovamente il form ed un messaggio di successo
				mostra_form("Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.");
	}else{echo "<font color='red'>".$msg. "</font><br /><br />torna <a href='index.php'> indietro </a>";}
}

else
{
	mostra_form();
}
 
/**
* Mostra il form per l'upload del file 
* 
*/ 
function mostra_form($messaggio = '')
{
	?> 
 
	<head> 
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
	<title>Carica file nel database</title> 
	</head> 
 
	<p><?php echo $messaggio?> <br /> Seleziona un file da memorizzare nel database: <p></p> 
	<form name="form1" enctype="multipart/form-data" method="post" action=""> 
	<p> 
	<input type="file" name="image"> 
	<p></p> 
	<p> 
	<input type="submit" name="invia" value="Invia file"> 
	<p></p> 
	</form> 
 
 
	<?php 
	exit();
}
?>
</body>
</html>

- ho costruito un file elenco.php che contiene l'elenco di tutti i file estratti dal db:

PHP:
<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Carica file nel database</title> 
</head> 
 
<p><b>Clicca su uno dei seguenti file</b><p><p></p> 
<?php 
// connessione e selezione del database
include_once('connettti.php');
 
// query per ottenere l'elenco dei files nel DB
$query = "SELECT * FROM tabella_files";
 
$risultato = mysql_query($query)
or die('Query non valida: ' . mysql_error());
 
// se ci sono files nel DB
if(mysql_numrows($risultato))
{
	// estrazione dei risultati e stampa dei links ai files
	while ($tmp = mysql_fetch_array($risultato))
	{
		echo "<p><a href=\"mostra.php?id=$tmp[id]\">$tmp[nome]</a></p>\n";
	}
}
else
{
	echo '<p>Nessun file presente nel database</p>';
}
?>

</html>

- Ho costruito (o meglio fatto copia/incolla grazie ad un codice di Ale97) un file image.php

PHP:
<?php 
// connessione e selezione del database

include_once('connettti.php');

// query per recuperare il file 
$id = isset($_GET['id']) ? mysql_real_escape_string($_GET['id']) : 0; 
$query = "SELECT * FROM tabella_files WHERE id = {$_GET['id']}"; 
$risultato = mysql_query($query) or die('Query non valida: ' . mysql_error()); 
$tmp = mysql_fetch_array($risultato); 

// se il file non esiste mostra un errore 404 
if(!mysql_num_rows($query)) 
{ 
    header('HTTP/1.1 404 Not Found'); 
    exit(); 
} 

// invio una intestazione contenente il tipo MIME 
header('Content-type: '. $tmp['tipo']); 

// invio il contenuto del file 
echo $tmp['dati']; 

?>

e infine ho un file mostra.php che dovrebbe mostrare l'img cliccata su elenco.php

PHP:
<html>
<head>
</head>
<body>
ciao

<?php 
include_once('connetti.php');
 
// visualizza l'immagine normalmente 
echo "<img src=\"image.php?id={$_GET['id']}\" />"; 
?> 

</body>
</html>

Lo scopo principale è quello di poter mischiare l'img con tag <html ... senza inciappare in problmei con gli header; effettivamente tutto sembra funzionare ma al momento di andare a visualizzare l'img questa non viene trovata (compare la classica x rossa). potete darmi nuovamente una mano?
 
Ultima modifica:

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Ciao Alessandro97 - Ho fatto come mi hai detto -> Sembra che il file non esista... mi ritorna alla pagina non trovata...
però sul db il file c'è! come mai?
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Giusto!! errore banale ma pur sempre errore.... Il php è come l'algebra sbagli un piccolo passaggio e poi sono cavoli ....

Grazie alessandro 97, come sempre hai risolto!
 
Discussioni simili
Autore Titolo Forum Risposte Data
emanuelevt inserimento img mysql PHP 2
emanuelevt Problema nel visualizzare l'img dal database mysql PHP 1
K form Inserimento record mysql PHP 2
P Mysql lento a cancellare MySQL 1
P Codifica caratteri speciali mysql php PHP 0
N MAX() + ADD_DATE - per update su Mysql MySQL 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
W MySQL ciclo in SELECT MySQL 0
L Mysql gestionale multipiattaforma MySQL 0
W MySQL SELECT list dinamica MySQL 0
M utilizzo mysql in nodejs - crea createdAt e updateAt MySQL 1
T colonne di tabelle mysql ordinate MySQL 0
M Sintassi "personalizzata" per mysql workbench? MySQL 0
A Mysql MySQL 0
F Ricreare struttura php+mysql su Xampp Apache 0
M Array associativi php su 2 campi mysql PHP 10
Z Controllo giorni MYSQL PHP 0
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
Z MySql injection PHP PHP 1
D controllare valore in tabella mysql PHP 0
A pulsante di update campo mysql con javascript Javascript 2
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
T differenza fra mysql xampp e un mysql server Database 0
R Importazione csv su mysql tramite array PHP 2
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
D problema php mysql PHP 1
D problema php mysql PHP 1
N Server mysql non raggiungibile da connessione esterna MySQL 1
B Crea pdf da tabella mysql "ultima riga modificata" MySQL 4
D evitare di inserirre duplicati in mysql PHP 4
L salvare codice html in mysql PHP 3
L Google chart php mysql PHP 2
S Gestire scelta dropdown con dati da Mysql PHP 2
K cron job mysql PHP 3
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
R Errore UPDATE tabella mysql PHP 1
R Caricamento immagine su cartella remota + mysql PHP 3
D Emoji in mysql Database 0
L Aiuto per programma web php/mySQL PHP 2
S Problema esportazione tabelle Mysql in Excel PHP 0
S Cancellare una riga MYSQL PHP 1
L Ricerca valore mysql e incremento PHP 73

Discussioni simili