Salve a tutti!
Sono nuovo qui...
Complimenti, vi seguo spesso e siete stati più volte utilissimi.
Ho uno script php che mi effettua l'upload di file nel database mysql:
[PHP]<?php
// se è stato inviato il file...
if(isset($_POST['invia']))
{
// se ci sono stati problemi nell'upload del file
if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
mostra_form("errore nell'invio del file. Riprova");
// connessione e selezione del database
$mysqli = new mysqli('localhost', 'root', 'pwd', 'test');
// 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'];
// preparo la query per inserire i dati nel DB
$stmt = $mysqli->prepare("INSERT INTO tabella_files VALUES (NULL, ?, ?, ?)");
// collego i parametri della query alle variabili PHP
$stmt->bind_param('ssb', $nome_file_vero, $tipo_file, $dati_file);
// apro il file in lettura
$fp = fopen($nome_file_temporaneo,"rb");
while ($dati_file = fread($fp,1024))
{
$stmt->send_long_data(2, $dati_file);
}
if ($stmt->execute())
{
$messaggio = "Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.";
}
else
{
$messaggio = "Errore nella memorizzazione del file <b>$nome_file_vero</b>";
}
// mostro nuovamente il form ed un messaggio di successo
mostra_form("Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.");
}
else
{
mostra_form();
}
/**
- Mostra il form per l'upload del file
*/
function mostra_form($messaggio = '')
{
echo <<<END
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carica file nel database</title>
</head>
<body>
<p>$messaggio<br>Seleziona un file da memorizzare nel database: </p>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<p>
<input type="file" name="file_inviato">
</p>
<p>
<input type="submit" name="invia" value="Invia file">
</p>
</form>
</body>
</html>
END;
exit();
}
?>[/PHP]
e questa tabella nel database:
id_file int(11) NOT NULL auto_increment,
nome_file varchar(255) default NULL,
tipo_file varchar(128) default NULL,
dati_file longblob,
PRIMARY KEY (`id_file`)
Vorrei inserire un campo di testo insieme all'upload del file, dove posso scrivere i nomi utente tra quelli registrati nel mio sito.
O meglio ancora, vedere gli utenti registrati, e spuntare quelli che hanno il permesso di vedere il file.
In questo modo, ogni volta che effettuo l'upload di un file, posso scegliere a chi permettere di vederlo nella propria pagina privata.
In teoria c'è, ma in pratica? E' fattibile?
Cosa dovrei aggiungere al codice e alla tabella?
Grazie infinite!