problema con upload [Era: info]

  • Creatore Discussione Creatore Discussione dany28
  • Data di inizio Data di inizio

dany28

Nuovo Utente
12 Lug 2007
11
0
0
ciao
come si fa a vedere che librerie hai installato su apache?

il motivo è che non riesco a far funzionare il comando

move_uploaded_file

grazie
 
Il problema potrebe essere nella configurazione di PHP (php.ini).
Per conoscere come è configurato PHP basta che crei un file PHP con il seguente contenuto:

PHP:
<?
phpinfo();
?>

Ciao
 
Quando non funziona ricevi un errore tipo:
PHP:
failed to open stream: Permission denied
?
 
Ultima modifica:
ok

ma il problema è che il mio client è tel
per cui non ricevo nulla come errore

quindi mi chiedevo cosa dovevo vedere nell'info

grazie
 
Cerca la voce "upload_tmp_dir" e guarda su che directory è settata poi cerca "file_uploads" e vedi se è su ON.
Dai anche uno sguardo a "upload_max_filesize" e vedi se per caso le dimensioni specificate in Mb sono inferiori al file che stavi uploddando, il problema potrabbe essere li.
 
grazie

ho controllato ma è tutto settato correttamente

move_uploaded_file($_FILES['bytes']['tmp_name'],
'test/' . $_FILES['bytes']['name']))

io utilizzo questo comando per salvare l'immagine

mentre invio l'immagine controllo nella cartella temporanea del server e vedo il file che aumenta di dimensione fino a raggiungere la dimensione massima, dopodiche viene eliminato automaticamente senza riuscire a salvarlo nella cartella "test/"
 
domanda: hai i permessi di scrittura sulla cartella test?
Per sicurezza imposta CHMOD 777 e riprova
 
si ho i permessi che ni dici


<?php
if (file_exists('test/' . $_FILES['bytes']['tmp_name']))
{
echo "QQQ" . $_FILES['bytes']['name'] . "";
}
else
{
if (move_uploaded_file($_FILES['bytes']['tmp_name'],
'test/' . $_FILES['bytes']['name'])) {
echo "St " . '/var/www/test/' . $_FILES['bytes']['name'];}
else {echo "sbajato";
}
}
?>

questo è il file che uso per salvare
visto che l'immagine mi proviene da un client che è un
cellulare e viene inviata con il metodo POST
devo aggiungere qualcosa in questo file per dire che il file che mi arriva è stato spedito con il metodo POST

grazie
 
No, non devi specificare il metodo POST, dato che in questo caso la variabile di metodo esiste già ($_FILES['bytes']).
Prova così, stampati tutto ciò che viene spedito tramite POST sull'immagine:
PHP:
 if (move_uploaded_file($_FILES['bytes']['tmp_name'],   
     'test/' .$_FILES['bytes']['name'])) {
      echo 'Nome file: <b>'.$_FILES['bytes']['name'].'</b><br>';
      echo 'MIME Type: <b>'.$_FILES['bytes']['type'].'</b><br>';
      echo 'Dimensione: <b>'.$_FILES['bytes']['size'].'</b> byte<br>';
        } else {
      echo $_FILES['bytes']["error"];
    }
 
ok,

cmq ho risolto il problema

il problema era che register_global era settato OFF
e per questo che non salvava.


cmq ora ho un altro problemino
il server è montato su ubunto server e anche li una volta cambiato lo stato del register_global non funziona, la versione è la PHP Version 5.1.2
invece provandolo sul pc portatile con windows e versione è PHP Version 4.3.10 funziona?

non so quante altre cose devo variare

ciao
 
Non devi settare register_globals in ON, è un modo per far diventare i tuoi scripts MOLTO insicuri
 
Grazie, si lo avevo letto da qualche parte ma in questo modo funziona,

altrimenti cosa dovrei fare?
 
Devi capire qual'è la variabile che passa quando il register_globals è in ON e non passa quando invece è in OFF.
Probabilmente nel tuo script il form invia una variabile POST che tu valorizzi direttamente.
Ad esempio: il form invia la variabile $_POST[nome] e tu nello script che la elabora inserisci direttamente $nome senza stabilire l'uguaglianza:

PHP:
$nome=$_POST['nome'];
 

Discussioni simili