Ciao ragazzi se per fare un db con gestione delle immagini devo fare questo:
pagina dove posso includere il file
image.php
pagina dove visualizzo il file
cosa devo cambiare a livello di codice per un db contenente video? E poi devo mettere un player per visualizzare i video? posso fare un'istruzione ciclica per ogni video? il campo della tabella è BLOB ma devo cambiarlo? si devono fare altri tipi di controlli?
Per favore è la prima volta che mi imbatto nella gestione dei video mi serve aiuto!
pagina dove posso includere il file
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ò 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>
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($risultato))
{
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'];
?>
pagina dove visualizzo il file
PHP:
<html>
<head>
</head>
<body>
ciao
<?php
include_once('connetti.php');
//ovviamente puoi includere le info dell'utente allgate all'immagine
// visualizza l'immagine normalmente
echo "<img src=\"image.php?id={$_GET['id']}\" />";
?>
</body>
</html>
cosa devo cambiare a livello di codice per un db contenente video? E poi devo mettere un player per visualizzare i video? posso fare un'istruzione ciclica per ogni video? il campo della tabella è BLOB ma devo cambiarlo? si devono fare altri tipi di controlli?
Per favore è la prima volta che mi imbatto nella gestione dei video mi serve aiuto!