Codice PHP:
      function estensione($nome){
          
$trova_punto explode("."$nome);
          
$estensione $trova_punto[count($trova_punto) - 1];
          
$estensione strtolower($estensione);
          if (isset(
$trova_punto[1]) == FALSE){
              return 
"Nessuna estensione";
          }
          return 
$estensione;
      }

      
$directory 'articoli/'// directory dove va uplodato il file
      
$n=$_POST['n'];//numero di foto uploadate
      
$art_id=$_POST['art_id']; //id dell'articolo relativo alle foto uploadate
      
for ($i=1;$i<=$n;$i++)
      {
        
error_reporting (E_ALL);//serve?
    // verifica l'esistenza del file
    
if (isset($_FILES["$i"]))
    {
          
$file_temporaneo$_FILES["$i"]['tmp_name'];
      
// Ottengo le informazioni sull'immagine originale
          
list($width$height$type$attr) = getimagesize($file_temporaneo);
          
$image2=getimagesize($file_temporaneo);
          if (
$width>500)
      {
             
// Creo la versione ridimensionata dell'immagine
             
$himage=(500*$height)/$width;
         
$thumb imagecreatetruecolor(500$himage);
             
$source imagecreatefromjpeg($file_temporaneo);
             
imagecopyresized($thumb$source0000500$himage$width$height);
             
$file_temporaneo=$thumb;
             
// Salvo l'immagine ridimensionata
       
}            
           
$nome_file $_FILES["$i"]['name'];
           
$estensione_file=estensione($nome_file);// trova l'estensione del file
       
$nome=$directory.$art_id."_".$i.".".$estensione_file;// assegna un nome univooco al file
           
echo "$file_temporaneo - $nome
"
;//esegue l'upload e controlla che vada a buon fine
           
if (imagejpeg($file_temporaneo$nome75))
         echo 
"L'immagine è stata caricata.
"
;
           else
             echo 
"Si è verificato un errore durante l'upload";
           
imagedestroy($file_temporaneo);
      }
      else
       echo 
"immagine non trovata";        
    } 
con questo codice faccio upload di una o più immagini jpg, rinominandole tutte id-articolo_numero-foto.jpg, e, ne caso avessero una larghezza superiore a 500, setto la larghezza a 500 mantendendo la proporzione (per essere pignoli ci manca il controllo, e quindi l'inversione delle variabili, nel caso fosse un'immagine verticale).

vi metto anche la pagina di invio:

Codice PHP:
<form method=post action=upload.php enctype=multipart/form-data>
Inserire le immagini
";
for (
$i=1;$i<=$riga["foto"];$i++)
{
  echo "
$i) <input type=file name=$i>";
  if (
$i==1) echo "<font class=text2>questa immagine sarà sia quella dell'anteprima sia la prima visualizzata nell'articolo</font>"; 
  echo "
"; 
}
echo"
<input type=hidden name=art_id value=".$riga["id"].">
         <
input type=hidden name=n value=".$riga["foto"].">
         

     <
input type=submit value=upload>"; 
fino a qualche giorno fa (non avevo ancora inserito imagedestroy, e infatti inserendo due immagini grandi dava errore) funzionava tutto perfettamente. poi sono andato a fare una nuova prova, e ecco il risultato:

Warning: imagejpeg(): supplied argument is not a valid Image resource in /web/htdocs/www.navecorsara.it/home/ms/upload.php on line 54
Si è verificato un errore durante l'upload
Warning: imagedestroy(): supplied argument is not a valid Image resource in /web/htdocs/www.navecorsara.it/home/ms/upload.php on line 61
che cosa c'è che non va in Image? Ho provato a fare anche un debug con echo, stampando le varibili volta volta, ma tutto va bene

Grazie a tutti