Dunque, ho cambiato ed abbandonato l'idea di inserire le immagini in una cartella e poi lasciare un link nel database.
Alla mia tabella alloggi ho aggiunto questi 3 campi :
codice:
nome_file varchar(255)
tipo_file varchar(128)
dati_file blob
Per inserire un file uso il classico form che ometto.
Quindi elaboro la richiesta con add_structure.php ( ometto pure qui i dati che non mi interessano e che funzionano, lasciando solo quelli per l'immagine )
Codice PHP:
<?php
session_start();
include ("config.php");
// Variabili per l'upload dell'immagine.
// recupero alcune informazioni sul file inviato
$nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
$nome_file_vero = $_FILES['file_inviato']['name'];
$tipo_file = $_FILES['file_inviato']['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);
$query = "INSERT INTO alloggi (nome_file, dati_file, tipo_file) VALUES ('$nome_file_vero', '$dati_file', '$tipo_file')";
$result = mysql_query($query, $db_conn) or die ("Errore connessione:" . mysql_error());
mysql_close();
header ("location: ../inserimento_avvenuto.php");
Sino a qui tutto bene, nel mio database vengono aggiunte tutte le informazioni.
I problemi sorgono adesso : per visualizzare i file uso show_hotelapp.php
Codice PHP:
<?php
session_start();
include ("config.php");
$utenti = "SELECT * FROM alloggi WHERE stato = 'non pubblicato' ";
$result = mysql_query($utenti) or die(mysql_error()) ;
$rows = mysql_num_rows($result);
if ($rows > 0) {
echo <<<TAB
<table id="vediapp">
<tr>
<td class="intestazione">Nome</td>
<td class="intestazione">Immagine</td>
<td class="intestazione">tipo</td>
while($row = mysql_fetch_assoc($result)) {
$id= $row['id_hotel']; // id mi serve in seguito per modificare o cancellare gli alloggi
<td>$row[nome_file]</td>
<td>$row[dati_file]</td>
<td>$row[tipo_file]</td>
</table>
?>
Ovviamente l'immagine ( dati_file ) non viene restituita come immagine ma sotto forma di codice ( penso binario ).
Come posso fare per mostrare direttamente l'immagine ?? Proprio non so come fare ..