Files ed immagini in MySQL

Elenco dei files

Per permettere agli utenti di poter prelevare i files conservati nel database dobbiamo mostrarne un elenco. Niente di più semplice: il seguente script, attraverso una comune SELECT, recupera i nomi e gli ID dei files disponibili e costruisce dei links.

Questi links ovviamente non punteranno ai files, poiché questi non sono accessibili direttamente. I collegamenti saranno invece del tipo mostra.php?id=32 e punteranno quindi ad un ulteriore script che si occuperà dell'invio dei files all'utente, e che realizzeremo nella prossima pagina.

 

<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
mysql_connect('localhost', 'utente_db', 'password_db')
or die('Connessione non riuscita: ' . mysql_error());

if(!mysql_select_db('nome_database'))
die('Selezione database fallita!');

// 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_file]\">$tmp[nome_file]</a></p>\n";
	}
}
else
{
	echo '<p>Nessun file presente nel database</p>';
}
?>

 

13 commenti

1 paolo paolo mercoledì 28 luglio 2010, ore 00:38
Complimenti per lo script!
L' unica cosa che mi da errore nella riga 15 nella pagina mostra.php

header('Content-Type: '.$tmp['tipo_file']);

Carico dei jpg e quando vado a cliccare sul link per visualizzare l' immagine mi escono tutti dei simboli strani , segno che non ha codificato l' immagine jpg. come posso fare per risolvere il problema? grazie
2 andrea andrea martedì 21 settembre 2010, ore 09:37
io ho lo stesso problema... hai risolto? se si come?
grazie mille

Andrea
3 Gianni Tomasicchio Gianni Tomasicchio martedì 21 settembre 2010, ore 10:09
Verificate l'inserimento accidentale di spazi o "a capo" in testa o in coda agli script.
4 massimiliano massimiliano giovedì 28 ottobre 2010, ore 09:18
diciamo semplicemente che dopo averlo modificato coni parametri di connesisone miei personali 1no inserisce alcun file nel data base e 2 i file come gia detto da altri utenti non vieve visualizzato con immagini ma simboli ^_^.
5 Fabio Fabio venerdì 11 febbraio 2011, ore 19:58
Stesso problema.
C'è una soluzione?
Grazie
6 Gianni Tomasicchio Gianni Tomasicchio venerdì 11 febbraio 2011, ore 20:23
Per qualsiasi problema riscontrato con gli script dell'articolo potete scrivere nel nostro forum.
7 davide davide giovedì 24 marzo 2011, ore 00:00
Ciao ho fatto esattamente quello che hai detto ma non mi salva il file sicuramente per il blob..può essere qualche impostazione?
8 Gianni Tomasicchio Gianni Tomasicchio giovedì 24 marzo 2011, ore 08:53
Ricevi qualche messaggio di errore?
9 alykiss alykiss mercoledì 13 aprile 2011, ore 17:42
ciao

due richieste in un giorno forse sono troppe:-)

veniamo a questo codice, intanto lo uso con wordpress, quindi ho dovuto cambiare qualcosa, ovviamente sono andato per intuito visto che di php non capisco un'H, ho eliminato queste due righe
// connessione e selezione del database
mysql_connect('localhost', 'utente_db', 'password_db')
or die('Connessione non riuscita: ' . mysql_error());

if(!mysql_select_db('nome_database'))
die('Selezione database fallita!');

connessione al database la fa wordpress
ho creato il db
ho inserito un'immagine .bmp
quando la richiamo però mi da questo errore:
Query non valida: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1.

nella linea 1 non c'è niente, quindi non capisco

aspetto notizie con impazienza grazie :-)
10 seingh seingh giovedì 21 aprile 2011, ore 11:37
Gli header vanno in cima al codice, perciò l'errore può essere quello.
11 lollo89 lollo89 sabato 7 maggio 2011, ore 16:38
Salve, invece di far stampare l'immagine in una pagina unica, e possibile far stampare l'immagine da una tag IMG.
Grazie
12 Gianni Tomasicchio Gianni Tomasicchio domenica 8 maggio 2011, ore 08:16
Si, basta impostare l'url del tag img in modo che punti allo script mostra.php:

<img src="mostra.php?id=123" />
13 tia96 tia96 martedì 19 luglio 2011, ore 10:14
Le immagini non mele visualizza complete, ma solo a metà, come risolvo?
Effettua l'accesso o registrati per inserire un commento