Ciao a tutti ragazzi
sto studiano la guida PHP ed in particolare la lezione "Gestire gli upload con PHP".
Stavo facendo una prova ad utilizzare tutti i costrutti di controllo descritti nella guida, ma il file mi presenta un errore alla fine.
Potete dirmi cosa è?
mi spiace tantissimo chiedere aiuto per una cosa del genere, ma non so cosa fare
sto studiano la guida PHP ed in particolare la lezione "Gestire gli upload con PHP".
Stavo facendo una prova ad utilizzare tutti i costrutti di controllo descritti nella guida, ma il file mi presenta un errore alla fine.
Potete dirmi cosa è?
mi spiace tantissimo chiedere aiuto per una cosa del genere, ma non so cosa fare
PHP:
<html>
<head><title>Pagina recupero info, in particolare è una pagina di controllo el file uplodato</title></head>
<body>
<h1>questa è una pagina web con estensione .php </h1>
<p><font color = "red">recuperà il file per poi metterlo nella cartella che noi abbiamo <br>predisposto per ospitare i file uploadati </font></p>
<h2>il form che ho creato è abbastanza complesso con vari campi</h2>
<?php
/* Per prima cosa verifico che il file sia stato effettivamente caricato!!
* Dopo aver verifiato che la variabile $_FILES è settata, uso
* is_uploaded_file() per verificare se effettivamente è stato trasferito
* un file.
*/
if (!isset($_FILES['userfile']) || !is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo 'Non hai inviato nessun file...';
exit;
}
/* Limito la dimensione massima a 4MB.
* E' un controllo piuttosto comune :consiste nel verificare se il file
* caricato dall'utente non sia superiore ad una dimensione massima:
*/
if ($_FILES['userfile']['size'] > 4194304) {
echo 'Il file è troppo grande!';
exit;
}
/* Talvalta può essere utile verificare se il file inviato dall'utente
* mediante il modulo di upload sia già presente all'interno della nostra
* cartella di destinazione
*/
$target_file = '/var/www/myupload/' . $_FILES['userfile']['name'];
if (file_exists($target_file)) {
echo 'Il file esiste già';
exit;
}
/* Un modo semplice per controllare il tipo di file caricato dall'utente
* consiste nell'effettuare una verifica sulla sua estensione.
* Questo controllo è IMPORTANTE in termini di sicurezza: infatti, si potrebbe
* caricare sul nostro server del codice malevolo che comprometterebbe
* la sicurezza del nostro sito web
*/
$ext_ok = array('doc', 'docx', 'pdf');
$temp = explode('.', $_FILES['userfile']['name']);
$ext = end($temp);
if (!in_array($ext, $ext_ok)) {
echo 'Il file ha un estensione non ammessa!';
exit;
}
/*Un tipo di controllo molto comune consiste nel verificare se il tipo
* di file corrisponde a quello atteso.
* Se, ad esempio, abbiamo predisposto un modulo per il caricamento
* di immagini è buona norma verificare che il file inviato
* dall'utente sia effettivamente un file grafico *
*/
$is_img = getimagesize($_FILES['userfile']['tmp_name']);
if (!$is_img) {
echo 'Puoi inviare solo immagini';
exit;
//percorso della cartella dove mettere i file caricati dagli utenti
$uploaddir = '/var/www/myupload/';
//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];
/*copio il file dalla sua posizione temporanea alla mia cartella upload
* Uso la funzione move_uloaded_file per verificare se effettivamente è
* stato spostato correttamente nella cartella di detinazione. *
* Nel primo caso la funzione restituisce TRUE, oppure FALSE
*/
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) {
//Se l'operazione è andata a buon fine...
echo 'File inviato con successo.';
}else{
//Se l'operazione è fallta...
echo 'Upload NON valido!';
}
?>
</body>
</html>
Ultima modifica di un moderatore: