Ciao Razorblade,
innanzitutto grazie per aver risposto al mio appello.
L'errore non l'ho postato semplicemente perchè non ricevo nessun messaggio d'errore.
La pagina dalla quale il file viene spedito rimane la stessa, senza che si ricarichi con il messaggio di conferma che normalmente scrive.
Ho provato ad impostare anche il valore seconds di set_time_limit a 0 ma senza risultato.
Ti posto il codice, magari c'è un errore del quale non mi sono accorto.

<?php

set_time_limit(0);

$cartella = $_POST['cartella'];

$filetmpname=$_FILES["file"]["tmp_name"];
$file=$_FILES["file"]["name"];
$filesize=$_FILES["file"]["size"];
$filetype=$_FILES["file"]["type"];

include ("head.php");
echo '<body>[img]imgs/logo.jpg[/img]

';
if ($file){
copy($filetmpname,"ftp/$cartella/$file");
unlink($filetmpname);
echo 'il file "'.$file.'" è stato copiato nella cartella "'.$cartella.'"
';
}

echo'
<form action="'.$php_self.'" method="post" enctype="multipart/form-data">
Scegli la cartella in cui caricare i files:
<select name="cartella">';

// elenco delle cartelle contenute dentro la cartella "ftp"
$cartella = opendir('ftp');
while ($file = readdir($cartella)) {
# aggiunge l'elemento all'array
$array_nomi_file[] = $file;
}
foreach ($array_nomi_file as $file) {
if ($file == "." || $file == ".."){
continue;
}
echo '<option value="'.$file.'">'.$file.'</option>';
}
echo'
</select>


Scegli i files da caricare:
<input type="file" name="file">


<input type="submit" value="Carica i files">
</form>

';

echo 'Torna a gestione cartelle ftp</body></html>';

?>