Script php: Caricare e Scaricare file via ftp con php

   difficoltà:  script script script script script

Script simili
20/2/2007


In Script php: Copiare un file remoto sul proprio server abbiamo visto come copiare sul proprio server un file remoto attraverso l'uso di fopen e fwrite. Se però dobbiamo operare su un nostro server, o comunque su un server a cui abbiamo accesso via ftp possiamo usare le funzioni ftp di php per caricare su un altro server un file locale o scaricare un file da altro server sul nostro via ftp. Se per esempio dobbiamo copiare file php l'esempio di Script php: Copiare un file remoto sul proprio server non è più valido, visto che il file letto sarà non il file originale ma quello interpretato dal server. Con l'uso delle funzioni ftp scaricheremo invece il file originale.

Vediamo quindi il codice commentato per Caricare file su server remoto via ftp e per Scaricare file da server remoto in locale via ftp:

<?
$ftp_server="xxx.xxx.xxx.xxx"; //esempio indirizzo ip del sever
$ftp_username="username";
$ftp_password="password";
// stabilisco la connessione al server ftp
$ftp_connessione = ftp_connect($ftp_server);

// effetto login sul server
$login = ftp_login($ftp_connessione, $ftp_username, $ftp_password);

// controllo se la connessione ha avuto buon fine
if(!$ftp_connessione || !$login){
echo "Connessione fallita!";
} else {
// se connessione ha avuto buon fine faccio UPLOAD del file
$file_da_caricare = "folder_locale/nomefile.ext";
$dove_carire = "folder_ftp/nomefile.ext";

$upload = ftp_put($ftp_connessione, $dove_carire, $file_da_caricare, FTP_BINARY);

// controllo se upload andato a buon fine
if (!$upload) {
echo "Si è verificato un errore durante il caricamento!";
} else {
echo "Upload avvenuto con successo";
}

//se invece voglio effettuare un DOWNLOAD:
$file_da_scaricare = "folder_ftp/nomefile.ext";
$dove_scaricare = "folder_locale/nomefile.ext";

$download = ftp_get($ftp_connessione, $dove_scaricare, $file_da_scaricare, FTP_BINARY);

// controllo se download andato a buon fine
if (!$download) {
echo "Si è verificato un errore durante il download!<br>";
} else {
echo "Download avvenuto con successo<br>";
}

// chiudo connessione FTP
ftp_quit($ftp_connessione);
}
?>


Social:


Donazione:
Se questo script ti è stato utile e ti ho fatto risparmiare tempo e denaro fai una
qualsiasi cifra è ben accetta! 1€, 3€, 5€ ,10€, 50€ ;-) fai te!

Permalink: Tag: Script Simili: Permalink: Link utili:
Tools:
Feed RSS    



Commenti


  FRANCESCO

25/2/2007 16:46:01

salve . Sn un webmaster alle prime armi vorrei caricare un sito che ho fatto. con un ftp,mi sono appoggiato a un server di milano.mi hanno fornito user e password. mi riesco a connettermi ma non riesco a TRASCINARE I FILE DA LOCALE A REMOTO. HO DISSATTIVATO LA MODALITA PASSIVA E I FIREWALL. VORREI CAPIRE QUALE è IL PROBLEMA .IN ATTESA DI VOSTRA RISPOSTA MANDO CORDIALI SALUTI GRAZIE

  Fabio

25/2/2007 19:28:54

Con quale sofware ftp ti colleghi?

  nik

6/4/2007 14:34:13

uso uno script simile a questo per permettere agli utenti di un sito di di caricare dei file dai loro computer in una sezione del portale.
Tutto sembra funzionare bene se non fosse per il fatto che SOLO alcune immagine risultano distorte e SOLO alcuni file tipo .doc perdono la formattazione. Non riesco davvero a capire dove sia il problema. Qualche suggerimento?

  Fabio

10/4/2007 10:16:23

prova invece di FTP_BINARY a mettere FTP_ASCII o viceversa se nel tuo script è scritto diversamente.
Fa sapere se poi cambia qualcosa

  Marco

28/6/2007 17:08:09

Salve, sarei interessato a conoscere uno script se esiste che mi permette di selezionare un file o un'immagine in locale, e copiarla in una cartella apposita di un sito in modo che poi una pagina web possa farla vedere.
Grazie

  Fabio

28/6/2007 17:13:44

Puoi dare un occhio a questo script:

Upload file con filtro estensione e dimensione massima
...se pero' non conosci php e vuoi un modulo prono per l'uso..la vedo un po' dura..

  yader

5/10/2007 14:40:47

Salve
da un pò di tempo sto provando a usare anch'io uno script simile a questo per permettere agli utenti di un sito di di caricare delle foto dai loro computer per poi visulizzarle in una pagina stessa del sito.Riesco a stbilire la connessione con il server ma a fare l'upload no... lo script che sto usando è il seguente:

$destinazione ="/img/".$_FILES['fotoCap']['name'];
$sorgente=$_FILES['fotoCap']['tmp_name'];

$conn_id = ftp_connect($ftp_server);

// login con user name e password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// controllo della connessione
if ((!$conn_id) || (!$login_result))
{
echo "La connessione FTP è fallita!";
echo "Tentativo di connessione a $ftp_server per l'utente $ftp_user_name";
die;
}
else
{
echo "Connesso a $ftp_server, utente ftp_user_name<br />";

// upload del file
$upload = ftp_put($conn_id, $destinazione, $sorgente, FTP_BINARY); //FTP_ASCII solo per file txt
// controllo dello stato di upload
if (!$upload)
echo "Il caricamento FTP non è andato a buon fine!";
else
echo "Caricato il file $source_file su $ftp_server come $destination_file";
}

// chiudere il flusso FTP
ftp_quit($conn_id);

mi da come risultato:
Connesso a ftp nome del mio ftp
Il caricamento FTP non è andato a buon fine!
____________________________________________
può essere un problema di permessi???Sto usando un hosting windows su server aruba.

Grazie

  Fabio

5/10/2007 14:50:46

che io sappia aruba ha i permessi di scrittura solo nella cartella public, quindi per scrivere bisognerebbe usara quella. E comunque forse il proble puo' essere che carichi un file temporaneo(preso da upload tramite form?)

Se comunque devi fare un upload tramite form è inutile usare le funzioni ftp..ti conviene usare uno script del genere:

Upload con php



  yader

5/10/2007 15:23:12

ok...grazie!!ora ci provo e ti faccio sapere se funziona!!!Cmq mi sembra che i permessi di scrittura di public siano come tutti gli altri!!!666.Ma si potrebbero in qualche modo modificare questi permessi???Ho visto che php5 ha una nuova funzione che permette di farlo..ma php5 non è ancora interpretrato dai server, almeno da quello che sto usando io no...

  Fabio

5/10/2007 15:27:36

Quando in passato ho avuto hosting su aruba non permettevano di cambiare permessi delle cartelle. Non so se ora è cambiato qlsa.

  yader

5/10/2007 15:40:12


Ho provato lo script ke mi hai consigliato tu..in LOCALE funziona perfettamente, sul server no...mi dice "Impossibile effettuare l'upload del file"...a questo punto non so + veramente ke fare!!Ho provato in tutti i modi ma non mi riesce

  Vittorio

16/11/2007 20:32:06

Ragazzi ho letto il forum cmq. è vero è piu facile fare upload di un file senza ftp ma con move_upload_file ma state attenti perchè lavorando con linux ho scoperto personalmente che :
Facendo upload con move_upload..... e diritti chmod(777) via form... lo fa si.. pero come utente apache e non come utente stand.
Quindi e qui che viene in ballo l'ftp... (ti aiuta in situazioni critiche)
pero' un problema c'è che non ho risolto avanti tutti!!!
Allora se io devo uplodare grazie ad un form un'immagine tramite ftp come fare a trovare il $sorgente del file ?? cioè la directory locale??


ftp_put($connect, $destination_file, $source_file, FTP_BINARY) or die ("Errore durante l'upload del file $source_file nel server ftp");

Ftp_put ha bisogno del source_file e se metti il $_FILE[file][tmp_name] non funziona.

Io non ho ancora risolto...


  Fabio

8/11/2008 10:50:22

Buongiorno a tutti, sto creando un sito web e mi hanno chiesto di fare un spazio dove attraverso una pagina web si postesse caricare su un server di aruba un file. in locale questo rocedimento funziona, ma quando ho caricato la pagina sul server la cosa non funziona piu. ho pensato ma io in locale faccio un upload sul server ma in remoto quando il server mi fa vedere la pagina web per lui è un procedimento di download, perche carica il file... sbaglio?
tutto sta che non riesce a prendere la cartella locale, io ho usato lo script fatto sopra ma ad esempio mettendo il percorso locale "C:\Programmi\EasyPHP 2.0b1\www\prima\admin\admin.rar" ni dice che si è verificato un errore durante il dowload.
ci sono delle regole sul percorso locale su cui scaricarlo.. come fa a capire la cartella su cui scaricare il file in locle?
grazie

  Antonio

25/8/2009 12:23:23

ciao scusa non sono molto esperto ma spero tanto che tu possa aiutarmi... come faccio se invece voglio permettere di caricare un'immagine su di una griglia posizionata sul mio sito, permettendo all'utente di selezionare con precisione il luogo della griglia in cui posizionare il file caricato? un esempio pratico di quello che sto cercando di dire lo trovi in questo sito http://www.milliondollarnetwork.com/getp.php?gr=1
ecco io vorrei fare qualcosa del genere...mi sapresti aiutare? grazie mille

  Keivan

12/11/2009 11:26:01

Salve, a me servirebbe uno script che da un server mi trasferisce un file in un altro server....

Per esempio sul SERVER 1 ho il file in:
http://www.dominio_vecchio.it/cv/prova.jpg

voglio trasferire questo file su 1 altro mio server
http://www.dominio_nuovo.it/cv/prova.jpg

questo script è adatto?

Cosa dovrei mettere:
$file_da_caricare = "folder_locale/nomefile.ext";
$dove_carire = "folder_ftp/nomefile.ext";
???
Grazie mille

  Giuseppe

1/10/2010 10:13:37

Grazie per lo script! Provato e funziona molto bene, purtroppo ho visto che usare l'upload via ftp è l'unica soluzione su hosting condivisi, perché limitano il max upload a X MB e in alcuni casi non c'è verso di poterlo modificare, nemmeno settandolo via htaccess...

Per files di grandi dimensioni rimangono due problemi: il tempo di esecuzione che anche quello è impostato nella configurazione del php.ini su cui ovviamente molti non danno la possibilità di applicare modifiche, ma leggendo in rete ho visto che lo si può settare via htaccess.

Ora, la cosa che sto cercando è come creare un loader in ajax che indichi all'utente lo stato di avanzamento dell'upload...qualcuno conosce qualcosa da applicare allo script ftp di questo post?

  luca

20/9/2011 20:49:49

salve

ho provato a usare il programma per caricare e scaricare file con ftp

ma quando eseguo la pagina ottengo questo errore

Fatal error: Call to undefined function ftp_connect() in /membri/testsiti92/includi/carica.php on line 6

sapete il perche??



Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.