Codice PHP:
<?php
require_once("config.php");
$directory = "/images";
// inseriamo le dimensioni massime consentite per l'upload
// massimo peso
$max_file_size = 10240;
// massima larghezza
$max_width = 300;
// altezza massima
$max_height = 100;
//La parte seguente di codice verifica se esiste il valore "upload" in POST
//In caso contrario viene visualizzato il form per l'upload dell'immagine
if(!isset($_POST['upload'])){
echo "<form action='uploadimage.php' method='post' enctype='multipart/form-data'>
Nome Immagine:
<input type='text' name='nomeimmagine' />
Inserisci file:
<input type='file' name='immagine' />
<input type='submit' name='upload' value='Carica Immagine' /></form> ";
}
// enctype='multipart/form-data' all'interno del tag form è fondamentale per l'upload dell'immagine
elseif(isset($_POST['upload'])){
// prendo il timestamp per dare un nome casuale al file dell'immagine
$timestamp = time();
$nomeimmagine = mysql_real_escape_string($_POST['nomeimmagine']);
$dimensioni = getimagesize($_FILES['immagine']['tmp_name']);
$larghezza = $dimensioni[0];
$altezza = $dimensioni[1];
//costruisco l'array degli errori
$errors = array();
if(empty($nomeimmagine) || empty($dimensioni)) {
$errors[] = 'Non hai inserito un nome all\'immagine.';
}
if(empty($_FILES['immagine']['name'])) {
$errors[] = 'Non hai inserito l\'immagine per il caricamento';
}
//verifico se il file è stato caricato correttamente
if(!is_uploaded_file($_FILES['immagine']['tmp_name'])) {
$errors[] = 'Si sono verificati errori durante l\'upload.';
}
if($_FILES['immagine']['size'] > $max_file_size) {
$errors[] = 'Immagine troppo pesante la dimensiome massima consentita è: [b]' . $max_file_size . '[/b] bytes.';
}
// Verifico se l'immagine è di tipo jpeg o gif
$type=$_FILES['immagine']['type'];
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") {
$errors[] = 'L\'immagine deve essere del formato JPEG o GIF.';
}
// controllo le dimensioni dell'immagine
if($altezza > $max_width) {
$errors[] = 'L\'altezza della tua immagine è troppo grande';
}
if($larghezza > $max_width) {
$errors[] = 'La tua immagine è troppo larga.';
}
// Se ci sono stampo gli errori
if(count($errors) > 0) {
echo '[b]ERRORS:[/b]
';
foreach($errors as $err) {
echo $err . '
';
}
}
//altrimenti effettuo l'upload
else {
$urlimmagine = $directory. time() . '_' . $_FILES['immagine']['name'];
//inserisco l'immagine nella directory e se tutto va bene nel database
if(copy($_FILES['immagine']['tmp_name'], $urlimmagine)) {
mysql_query("INSERT INTO immagini (nomeimmagine, urlimmagine) VALUES ('$nomeimmagine', '$urlimmagine')");
echo 'L\'immagine è stata caricata con successo. [url="' . $urlimmagine . '"]Clicca qui per vedere l\'immagine[/url].'; }
else
echo 'Si sono verificati errori durante il caricamento dell\'immagine.';
}
}
?>
eppure in locale mi funzionava... avete qualche idea?
il file config.php è regolarmente settato con user per ingresso in DB e pass copiati direttamente dall'email ricevuta da aruba, host copiato da email che arriva da aruba e nome pDB pure... consigli?