- Home
- Categorie
- Coding e Sistemistica
- PHP
- Script caricamento file tramite form
-
Script caricamento file tramite form
Salve a tutti!
Ho realizzato un form che mi invia i file in una cartella all'interno dell'ftp.
Lo script pare funzioni visto che non mi da alcun tipo di errore nel caricamento dei file, ma in realtà il file non viene caricato all'interno della cartella desiderata. (La cartella in questione si chiama upload)
Vi posto di seguito il mio codice:FILE inizia.php
<!--apriamo il form e specifichiamo il tipo di dati e il metodo di invio-->
<form action="upload.php" enctype="multipart/form-data" method="post">
<!--settiamo la dimensione massima dei file in byte, nel nostro caso 1MB=1024000byte-->
<input name="MAX_FILE_SIZE" type="hidden" value="1024000" />
File da caricare:
<!--campo per la scelta del file-->
<input id="file" name="file" type="file" />
<!--bottone di invio-->
<input name="submit" type="submit" value="Carica" />
</form>FILE upload.php
<?php
//controlliamo che il file rispetti le dimensioni impostate
if ($_FILES["file"] < 1024000){
//controlliamo se ci sono stati errori durante l'upload
if ($_FILES["file"]["error"] > 0){
echo "Codice Errore: " . $_FILES["file"]["error"]."
";
}
else{
//stampo alcune informazioni sul file
//il nome originale
echo "Nome File: " . $_FILES["file"]["name"]."
";
//il mime-type
echo "Tipo File: " . $_FILES["file"]["type"] . "
";
//la dimensione in byte
echo "Dimensione [byte]: " . $_FILES["file"] . "
";
//il nome del file temporaneo
echo "Nome Temporaneo: " . $_FILES["file"]["tmp_name"] . "
";
//controllo se il file esiste già sul server
if (file_exists("upload/" . $_FILES["file"]["name"])){
echo "Il file " . $_FILES["file"]["name"] . " è già presente sul server";
}
else{
//sposto il file caricato dalla cartella temporanea alla destinazione finale
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "File caricato in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else{
echo "File troppo grande!!";
}
?>Dove sbaglio??:?
-
Io ho provato il tuo script e funziona, l'unica cosa che accade è la visualizzazione di alcuni notice appena accedi alla pagina, visto che esegui un controllo su $_FILES ["file"] senza controllare che sia valorizzato.
-
@codencode said:
[...]
Ti ringrazio codencode.
Quindu come dovrei fare??
E' strano comunque perchè a me non funziona lo script.
Cioè mi dice che invia correttamente ma in realtà all'interno della cartella il file non c'è.
-
Ciao Bum Bum #11,
che permessi ha la cartella in cui dovrebbe eseguire l'upload?
-
Ciao Thedarkita,
attualmente la cartella ha come attributi 755.
**
-
Prova a cambiarli in 777 e vedi se funziona.
-
Ok provo immediatamente e ti dico se funziona.
-
Sei un grande cosi funziona lo inserisce nella cartella!!
Però ora mi servirebbe una cosa:
quando ne inserisco uno con lo stesso nome mi dice giustamente che il file è già presente sul server perchè fa un controllo.
Io vorrei fare in modo che inviando un file con lo stesso nome lo sovrascriva a quello esistente.
C'è un modo?
Nel frattempo grazie mille per l'aiuto!
-
Puoi cancellare quello esistente con unlink e mettere il file nuovo al suo posto.
-
Mmmmm
Scusa l'ignoranza, mi potresti postare la sintassi da inserire all'interno del mio file??
-
[php]
if (file_exists("upload/" . $_FILES["file"]["name"])){
unlink("upload/" . $_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
}
[/php]
Ovviamente devi avere i permessi sul file per poterlo eliminare.
-
Dirti che sei il mio idolo sarebbe poco!!!
Grazie mille funziona alla grande!!!
UN FENOMENO!!!
Ciao a risentirci!!
-
Figurati.
-
ciao molto utile funziona era ciò che cercavo per inserirlo nella ajax chat ma se voglio che carica solo il file png? è giusto cosi
if ($_FILES["file"]["type"] < png){ grazie per la risposta oppure<?php
//controlliamo che il file rispetti il formato png
$types = array('image/png', 'image/png');
if (in_array($_FILES['inputname']['type'], $types)) {
// Your file handing script here
} else {
// Error, filetype not supported
}//controlliamo che il file rispetti le dimensioni impostate
if ($_FILES["file"] < 1024000){
//controlliamo se ci sono stati errori durante l'upload
if ($_FILES["file"]["error"] > 0){
echo "Codice Errore: " . $_FILES["file"]["error"]."
";
}
else{
//stampo alcune informazioni sul file
//il nome originale
echo "Nome File: " . $_FILES["file"]["name"]."
";
//il mime-type
echo "Tipo File: " . $_FILES["file"]["type"] . "
";
//la dimensione in byte
echo "Dimensione [byte]: " . $_FILES["file"] . "
";
//il nome del file temporaneo
echo "Nome Temporaneo: " . $_FILES["file"]["tmp_name"] . "
";
//controllo se il file esiste già sul server
if (file_exists("img/avatars/" . $_FILES["file"]["name"])){
unlink("img/avatars/" . $_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], "img/avatars/" . $_FILES["file"]["name"]);}
else{
//sposto il file caricato dalla cartella temporanea alla destinazione finale
move_uploaded_file($_FILES["file"]["tmp_name"], "img/avatars/" . $_FILES["file"]["name"]);
echo "<br><br>Your file was uploaded successfully.<br>";
echo "Refresh the chat browser window to see your Avatar";
echo "<br/><br/><input type='button' value='Close this window' onclick='self.close()'>";
}
}
}
else{
echo "<center>The file must be both .png and under 250kb in size!<br><br>";
echo "<input type='button' value='Go Back and Try Again' onclick='goBack()'></center>";
}
?>