Creare cartelle sul server tramite ftp

Il sistema più comodo per caricare file e creare cartelle sul vostro sito è di usare filemanager predisposti. Uno dei migliori, che uso da sempre, è Filezilla: completo, facile da usare e supporta anche il drag & drop (trascinamento) dei file dal vostro pc a Filezilla stesso.

Non sempre, però, c’è la possibilità di connettersi tramite filemanager. Può capitare che il server stesso dia delle limitazioni oppure, più comunemente, può capitare di dover assegnare dei permessi a qualche utente esterno affinché carichi lui stesso file e cartelle nel server.

In questi casi possiamo affidarci a una semplice funzione, che vi propongo qui sotto. I commenti dovrebbero essere sufficienti per comprendere il suo uso.
Trovate la funzione anche nello script linkato di seguito, liberamente scaricabile.

Download script

La funzione per creare cartelle tramite ftp

Nell’esempio creiamo la cartella “immagini” nella root del sito. Imposteremo a questa cartella i permessi 0666 (cioè scrittura e lettura per chiunque).
Gli unici parametri che dovete procurarvi sono quelli di connessione all’ftp del vostro server, quindi host, username e password. Non serve altro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function ftp_creadir($dirname) {
    $dirname = "public_html/".$dirname; //percorso della cartella
    $host="localhost";
    $user="username";
    $pass="password";
    $conn_id=ftp_connect($host);
    $login_result=ftp_login($conn_id, $user, $pass);
    if((!$conn_id) or (!$login_result)){
        //testo di errore
    	die;
    }
    ftp_mkdir($conn_id, $dirname); //crea la cartella
    ftp_chmod($conn_id, 0666, $dirname); //setta i permessi di scrittura e di lettura per chiunque
    ftp_quit($conn_id); //chiude la connessione ftp
}

ftp_creadir("immagini"); //crea la cartella "immagini" tramite ftp, con permessi di scrittura e lettura

Ftp_chmod per dare i permessi alla cartella

Il php5 ci mette a disposizione una funzione chiamata ftp_chmod(), che ha lo scopo di settare i permessi di una cartella o di un file passato. Accoglie tre parametri: la connessione, il tipo di permessi da dare alla cartella (numerici) e il nome della cartella.
Se lavoriamo in php5, quindi, la funzione di seguito non è necessaria. Nel caso ci troviamo davanti a versioni precedenti, invece, la funzione ftp_chmod() non esiste e dovremmo crearla ad hoc. Vi basta comunque copiare la funzione seguente nella stessa pagina della precedente, senza modificarla.

1
2
3
4
5
6
7
function ftp_chmod($ftpstream, $chmod, $file)  {
    $old=error_reporting(); //salva in una variabile gli eventuali errori
    error_reporting(0);
    $result=ftp_site($ftpstream, "CHMOD ".$chmod." ".$file);
    error_reporting($old);
    return $result;
}
Etichette:, ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.