problema upload file

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Ciao, ho un form per caricare file in una cartella del server ftp,
ma mi dà sempre errore nel caricamento e controllando l'array $_FILES ho visto
che è sempre vuoto. Potete aiutarmi? Grazie.
Questo è il codice:
PHP:
    <div id="inserimento" align="right">
    
<h3>Inserimento nuova news</h3>
<br /><br />
<form action="" method="post" enctype="multipart/form-data">
<label>Inserire Titolo</label> <br /><input type="text" name="titolo" size="30" /><br /><br />

<label>Inserire Descrizione</label> <br /><textarea name="descrizione" rows="5" cols="29"></textarea><br /><br />
<label>Carica Immagine</label> <br /><input type="file" name="upload" size="40" /><br /><br />

<input type="submit" name="inserisci" value="Inserisci News" />


</form>

</div>

<?php
      if (is_uploaded_file($_FILES['upload']['tmp_name'])) 
   {
	   $titolo = addslashes($_POST['titolo']);	
	   $descrizione = addslashes($_POST['descrizione']);
   	   $nome_file = $_FILES['upload']['name'];
	   
   if ($_FILES["upload"]["error"] > 0)
   {
   	   echo "Error: " . $_FILES["upload"]["error"] . "<br />";
   }
 
     // Sposto il file nella cartella da me desiderata
     if (!move_uploaded_file($_FILES['upload']['tmp_name'], 'news/'.$nome_file))
	  {
	   	echo "<script type=\"text/javascript\">"; 
   		echo "alert(\"Errore nel caricamento dell'immagine\")"; 
   		echo "</script>";
     } 
	 else
	 {
	 	$sql = mysql_query("insert into news (titolo, descrizione, nome_file)
							values('$titolo', '$descrizione', '$nome_file')") or die (mysql_error());	
	
							
		echo "<script type=\"text/javascript\">"; 
   		echo "alert(\"News inserita\")"; 
   		echo "</script>";
 	 }
   }
    
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per prima cosa verifica i permessi o se il file immagine non sia troppo grande (se non ricordo male ci sono dei limiti di kb)
poi, se l'up può farlo anche una terza persona e non solo tu, verifica cosa carichi.
se non lo fa un terzo potrebbe caricarti un file .exe con conseguenze, come minimo, imprevedibili.
controlla sempre il tipo di file che deve essere caricato.
poi metti un var_dump subito dopo il tag php e prima dell'if

PHP:
<?php
      var_dump($_FILES['upload']['tmp_name']);
	  if (is_uploaded_file($_FILES['upload']['tmp_name'])) 
   {
//..............
e verifica cosa ti risulta, potrebbe essere un errore di trasmissione dal form
 

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
ciao grazie per la rapida risposta;
ho provato con var_dump come mi hai detto e mi stampa NULL; il form fa parte di un pannello admin
quindi il tipo di file non è un problema
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se il var dump è vuoto, con molta probabilità dipende dalla trasmissione del dato, verifica i nomi e prova a fare queste correzioni (vedi i commenti)

PHP:
<div id="inserimento" align="right">
<h3>Inserimento nuova news</h3>
<br /><br />
<!--correzione nel l'action del form -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" enctype="multipart/form-data">
<label>Inserire Titolo</label> <br /><input type="text" name="titolo" size="30" /><br /><br />

<label>Inserire Descrizione</label> <br /><textarea name="descrizione" rows="5" cols="29"></textarea><br /><br />
<!-- prova a togliere il size -->
<label>Carica Immagine</label> <br /><input type="file" name="upload"/><br /><br />
<input type="submit" name="inserisci" value="Inserisci News" />
</form>
</div>
<?php
//inserimento della verifica del submit
if(isset($_POST['inserisci']){
      if (is_uploaded_file($_FILES['upload']['tmp_name'])){
       $titolo = addslashes($_POST['titolo']);    
       $descrizione = addslashes($_POST['descrizione']);
       $nome_file = $_FILES['upload']['name'];
   if ($_FILES["upload"]["error"] > 0)
   {
          echo "Error: " . $_FILES["upload"]["error"] . "<br />";
   }//anche qui metterei un else perche se ti da errore non dovresti caricare ne salvare nel db
     // Sposto il file nella cartella da me desiderata
     if (!move_uploaded_file($_FILES['upload']['tmp_name'], 'news/'.$nome_file))
      {
           echo "<script type=\"text/javascript\">"; 
           echo "alert(\"Errore nel caricamento dell'immagine\")"; 
           echo "</script>";
     }else{
         $sql = mysql_query("insert into news (titolo, descrizione, nome_file) values('$titolo', '$descrizione', '$nome_file')") or die (mysql_error());                
        echo "<script type=\"text/javascript\">"; 
           echo "alert(\"News inserita\")"; 
           echo "</script>";
      }
   }
}//fine if $_POST del submit
?>
poi, ma può essere una stupidaggine, cambia il nome da upload a carica (sia nel form che nel php), non vorrei che upload interferisse con qualche parola riservata
inoltre ti conviene mettere if/else per il tipo, simile a questo

PHP:
  $tipi_consentiti = array("image/gif","image/jpeg","image/pjpeg","image/png");
  // verifico che il formato del file sia tra quelli accettati
  if (@in_array($_FILES['upload']['type'], $tipi_consentiti)){
  //...carico +db...
  }else{
  	echo "tipo di file non ammesso";
  }
prova, al massimo non funzia
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [PHP] Problema upload file (multiplo) PHP 1
R Problema upload file PHP 1
francesco7 [Problema] esecuzione script Upload file in php PHP 0
F Problema con upload di file PHP 1
C Problema nell'upload di un file PHP 4
P Problema upload file PHP 2
D Problema nome file su upload Classic ASP 5
F Problema Upload file con Internet Explorer PHP 29
U Problema script upload file... :'( PHP 7
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
N [PHP] Problema upload immagini wordpress PHP 2
Rikk73 Problema upload immagini PHP 4
R Problema upload PHP 1
P Problema con lettura filesystem del client da server! Upload multiplo foto. PHP 5
F Problema con upload di immagini che superano 2MB PHP 14
A Problema con Upload immagini PHP 9
L classe upload [Problema cartella] PHP 1
B Problema upload delle foto PHP 1
L problema upload: Strict Standards: Only PHP 2
B Problema upload application/x-zip-compressed diventa erroneamente application/octet-stream PHP 0
A problema con upload immagini multiple PHP 0
L problema ftp upload su host windows PHP 9
N problema script php mysql multi upload immagini PHP 31
N Problema upload iis7 Classic ASP 0
helpdesk Problema Upload non ridimensiona l'immagine PHP 4
A upload immagini problema PHP 3
R problema upload PHP 9
G Problema con upload immagini e IE7 PHP 6
V Problema con Pure Asp Upload Classic ASP 4
Y problema nell'upload di un'immagine PHP 7
S Problema upload immagine Classic ASP 4
SolidSnake4 problema upload PHP 1
N Problema upload immagini! HELP! PHP 0
S Problema Dominio su Tiscali e upload con ADSL ALICE Domini 1
C problema upload immagini grandi con 4images Programmazione 0
D problema con upload [Era: info] PHP 13
M Problema con l'upload PHP 0
V Problema Upload PHP 6
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11

Discussioni simili