upload file php

rickypictures

Nuovo Utente
6 Giu 2014
4
0
0
Salve a tutti,
sto impazzendo da due giorni su un problema che riguarda l'upload di un file in php.
Ho visto che ci sono diverse discussioni sull'argomento ma sembra che nessuno abbia riscontrato il mio problema.
Posto il codice:


HTML:
<!DOCTYPE html>
<html lang="it">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method=”post” action='upload.php' name="form1" id="form1">
            <label>Carica il tuo file:
            <input type="file" name='upload' id='upload' ></label>
            <input type="submit" name="invia" id="invia" value="Invia" tabindex="40">
        </form>
</body>
</html>


PHP:
<?php 

if($_FILES['upload']['error'] == 0){

	if($_FILES['upload']['type'] != "image/jpeg") die("formato non valido");
		echo "temp: " .$_FILES['upload']['temp_name'];
		move_uploaded_file($_FILES['upload']['tmp_name'], "http://www.pippo.it/public/uploads/".$_FILES['upload']['name']) or die ("imp");
		echo "upload ok".$_FILES['upload']['name'];

}

?>


Al momento mi esce la stampa "formato non valido", ma anche commentando il controllo del formato anche .$_FILES['upload']['temp_name'] è vuoto.

Non capisco dove sia l'errore.
Grazie mille a tutti per l'aiuto.
 
PHP:
move_uploaded_file($_FILES['upload']['tmp_name'], "http://www.pippo.it/public/uploads/".$_FILES['upload']['name']) or die ("imp");

ciao,
io conosco molto poco ma,
se togliessi "http://www.pippo.it/" e indirizzassi correttamente il file secondo il sistema operativo in uso forse
potrebbe anche funzionare
ciao
Marino
 
Ciao Marino,
grazie per la tua risposta. Ho provato a scrivere diversamente il percorso ma niente.
Il problema è a monte, $_FILES è vuota, non riesco a fare l'upload e infatti quando stampo non esce nulla.
E' come se non memorizzasse il percorso del file da caricare.
Possibile che non ci sia nessuno in grado di aiutarmi? Grazie
 
ti posto il mio esempio che funziona,

file : frontend_ridotto.php

HTML:
<?php

# http://localhost/test_site/php/test/frontend_ridotto.php

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>prova allegato</title>
<link href="css/news.css" rel="stylesheet" type="text/css" />

<style type="text/css">
label #Richiesta_0 {
	color: #FFFF80;
}
</style>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td valign="top" height="3018">
     <form action="FrontendMailer.php" method="post" enctype="multipart/form-data" name="frontendF"> 
      <table width="1005" border="0">
        <tr>
          <td colspan="2"><label for="Allegato">Allegato</label>
            <input type="file" name="Allegato" id="Allegato" /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td> 
          <td><input type="reset" name="Ripristina" id="Ripristina" value="Reset" /></td>        
          <td><input type="submit" name="send" alt="Invia" value="Invia" align="middle" /></td> 
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          </tr>
      </table>
    </form></td>
  </tr>
</table>
<blockquote>&nbsp;	</blockquote>
</body>
</html>

file : FrontendMailer.php

PHP:
<?php

if ($_FILES["Allegato"]["error"] > 0) {
  $Allegato = "";
  echo "Error: " . $_FILES["Allegato"]["error"] . "<br>";
} else {
  $Allegato_name = $_FILES["Allegato"]["name"];
  $Allegato_type = $_FILES["Allegato"]["type"];
  $Allegato_size = $_FILES["Allegato"]["size"] / 1024;
  $Allegato_temp = $_FILES["Allegato"]["tmp_name"];
  $Allegato_path = dirname($_FILES["Allegato"]["tmp_name"]);
  $Allegato      = $Allegato_path."/".$Allegato_name;

  print "Upload    : ".$Allegato_name."<br />";
  print "Type      : ".$Allegato_type."<br />";
  print "Size (kB) : ".$Allegato_size."<br />";
  print "Stored in : ".$Allegato_temp."<br />";
  print "folder    : ".$Allegato_path."<br />";
  print "new file  : ".$Allegato."<br />";

  rename ($Allegato_temp, $Allegato); 
}
?>
risultato :

Upload : 10frasi.rtf
Type : application/msword
Size (kB) : 4.7607421875
Stored in : C:\Windows\Temp\phpB231.tmp
folder : C:\Windows\Temp
new file : C:\Windows\Temp/10frasi.rtf
penso che fai prima tu a verificare le differenze,
se cambi "Allegato" in "upload" credo che somigli molto al tuo sviluppo

è chiaro che devi avere accesso in scrittura nel folder di upload

considera che il codice html esegue l'upload (vedi stored in)
mentre php cambia solo il nome nell'originale (vedi new file)

guarda soprattutto la form nel codice html
ciao
Marino
 
Ultima modifica:
Grazie per la risposta e soprattutto la pazienza.
Ho provato il tuo codice e una volta fatto click su invia mi compare la scritta "Error: 6" che ho visto essere un problema con la cartella temporanea. Io sul file php.ini del server ho impostato upload_tmp_dir = D:\siti\miosito\public.
Ho inoltre stampato i campi di $FILE Array ( [Allegato] => Array ( [name] => immagini-divertenti copia.jpg [type] => [tmp_name] => [error] => 6 [size] => 0 )
 
mi compare la scritta "Error: 6" che ho visto essere un problema con la cartella temporanea. Io sul file php.ini del server ho impostato upload_tmp_dir = D:\siti\miosito\public.
leggendo il manuale, spiega così l'errore
Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.
non riesce a raggiungere il folder dove parcheggiare il file temporaneo
controlla bene cosa hai scritto nel file php.ini
e se sei sicuro di quanto scritto,

verifica i diritti di scrittura sulla cartella

fai qualche prova variando il "perrcorso", per esempio eliminando "siti",

come esempio, questa è la definizione di aruba per la cartella temporanea standard,
PHP:
$PercorsoDominio = $_SERVER['DOCUMENT_ROOT'];
//echo "<br>".$PercorsoDominio;
$public = "/public/upload/";
è scritta decisamente in modo diverso da come l'hai impostata tu

per concludere, devi trovare l'esatta definizione della cartella temporanea
ciao
Marino
 

Discussioni simili