Buongiorno,
devo caricare una serie di immagini in una tabella immagini_ricette; si tratta di immagini jpg, tutte più o meno della stessa dimensione in Mb (sono tutte 2048x1152 px a 72 dpi, peso complessivo di ciascuna immagine circa 1,3-1,5 Mb).
Ho innanzitutto controllato il file php.ini e i limiti impostati per upload e post sono più alti.
(upload_max_filesize = 10M e post_max_size = 40M)
Detto ciò, vista la mia scarsa competenza, ho cercato e trovato un vecchio post (https://www.mrw.it/php/archiviare-immagini-database-usando-php-mysql_7021.html) che pareva perfetto per cominciare a capire come muovermi.
Infatti funziona.
Però...
Esiste il modo di aggiungere una barra di scorrimento (o simili) che mostri lo stato dell'upload dell'immagine?
Domando questo perchè vista la dimensione delle immagini devo sapere quando posso premere il pulsante "invia", altrimenti l'immagine risulta caricata solo in parte. (ho tolto dallo script i controlli relativi alla dimensione dell'immagine caricata)
Inoltre, apparentemente, limita l'upload a 64 Kb.
la pagina PHP quindi è la seguente:
Grazie per i suggerimenti.
devo caricare una serie di immagini in una tabella immagini_ricette; si tratta di immagini jpg, tutte più o meno della stessa dimensione in Mb (sono tutte 2048x1152 px a 72 dpi, peso complessivo di ciascuna immagine circa 1,3-1,5 Mb).
Ho innanzitutto controllato il file php.ini e i limiti impostati per upload e post sono più alti.
(upload_max_filesize = 10M e post_max_size = 40M)
Detto ciò, vista la mia scarsa competenza, ho cercato e trovato un vecchio post (https://www.mrw.it/php/archiviare-immagini-database-usando-php-mysql_7021.html) che pareva perfetto per cominciare a capire come muovermi.
Infatti funziona.
Però...
Esiste il modo di aggiungere una barra di scorrimento (o simili) che mostri lo stato dell'upload dell'immagine?
Domando questo perchè vista la dimensione delle immagini devo sapere quando posso premere il pulsante "invia", altrimenti l'immagine risulta caricata solo in parte. (ho tolto dallo script i controlli relativi alla dimensione dell'immagine caricata)
Inoltre, apparentemente, limita l'upload a 64 Kb.
la pagina PHP quindi è la seguente:
PHP:
<?
session_start();
//se non c'è la sessione registrata
mb_internal_encoding('UTF-8');
if (!$_SESSION['autorizzato']) {
echo "<h1>Area riservata, accesso negato.</h1>";
echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
die;
}
//Altrimenti Prelevo il codice identificatico dell'utente loggato
$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica
function upload()
{
$result = false;
$immagine = '';
$size = 0;
$type = '';
$nome = '';
$max_size = 30000000;
$result = @is_uploaded_file($_FILES['file']['tmp_name']);
if (!$result)
{
echo "Impossibile eseguire l'upload.";
return false;
}//else{
// $size = $_FILES['file']['size'];
// if ($size > $max_size)
// {
// echo "Il file è troppo grande.";
// return false;
// }
$type = $_FILES['file']['type'];
$nome = $_FILES['file']['name'];
$immagine = @file_get_contents($_FILES['file']['tmp_name']);
$immagine = addslashes ($immagine);
@include 'connect.php';
$sql = "INSERT INTO ricette_foto VALUES ('', '$type', '$id_ricetta','$immagine')";
$result = @mysql_query ($sql) or die (mysql_error());
return true;
// }
}
if (isset($_FILES['file']))
{
upload();
}
echo "
<h3>Upload</h3>
<form enctype=\"multipart/form-data\"
action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
Id ricetta: <input type=\"text\" name=\"id_ricetta\" size=\"5\" /><br>
<input type=\"file\" name=\"file\" size=\"40\" />
<input type=\"submit\" value=\"Invia\" />
</form>
<br /><a href=\"link.php\">Elenco</a>";
?>
Grazie per i suggerimenti.