Mootools, Guida agli effetti con CSS (Fx.Style) Chi ti hosta?
Sep 21

Con l’avvento del FrameWork 2.0 si è andata ad aggiungere una classe molto utile per noi programmatori: la FtpWebRequest. In passato per interagire via FTP con dei server bisognava usare i socket e spesso la cosa non era scontata.
Con questa classe adesso è davvero molto semplice interagire via FTP con i server ed effettuare tutte le operazioni che vogliamo.
Oggi andiamo a creare una classe che si occuperà di uplodare un file, scaricarlo e poi cancellarlo.
Il .cs che trovato in allegato contiene due classi: la prima è la FtpState classe fornita direttamente dal SDK del Frame Work e poi la nostra vera e propria classe che compierà le operazioni desiderate. In questo caso l’abbiamo chiamata PepMindFtp.
Andiamo ad analizzare i tre metodi (i metodi sono tutti statici):

StartIt: in modo asincrono si occupa di uplodare un file sul server

/// <summary>
/// Metodo per l'upload di uno specifico file
/// </summary>
/// <param name="Url">ftp://www.miosito.it/fld/file.txt</param>
/// <param name="fileLocalName">nome del file locale che uplodiamo</param>
/// <param name="UserName">utente FTP</param>
/// <param name="Password">password FTP</param>

DownloadFile: scarica dal server il file sotto forma di stream di byte

/// <summary>
/// Metodo per il download specifico di un file
/// </summary>
/// <param name="Url">indirizzo ftp correttamente impostato://www.miosito.it/fld/file.txt</param>
/// <param name="UserName">utente FTP</param>
/// <param name="Password">password FTP</param>
/// <returns>Ritorna uno stream di dati</returns>

DeleteFile: elimina un file specifico sul server

/// <summary>
/// Metodoper la cancellazione di un file
/// </summary>
/// <param name="Url">indirizzo ftp correttamente impostato://www.miosito.it/fld/file.txt</param>
/// <param name="UserName">utente FTP</param>
/// <param name="Password">password FTP</param>
/// <returns>Booleano con l'esito dell'operazione</returns>

Il primo metodo opera asincronicamente, ma va chiaramente implementata la parte applicativa che lo possa gestire. Vediamo un piccolo esempio:
In questa applicazione ho necessità di uplodare i file da un’applicazione Windows Form su un server remoto. Le soluzioni potevano essere due:
La prima era quella di storare dentro Sql Server lo stream dell’immagine. Questa soluzione si però poi rivelata poco performante. La seconda è quella di salvare su un server FTP la nostra immagine.Associamo ad un bottone il nostro evento.

private void button2_Click(object sender, EventArgs e){
 
  IAsyncResult ar = null;
 
  AsyncCallback __as = new AsyncCallback(allega);
 
  __as.BeginInvoke(ar, null, null);
 
}
 
private void allega(IAsyncResult ar){
 
  pictureBox11.Image= Image.FromFile(ConfigurationSettings.AppSettings["WAIT"]);
 
  //visualizziamo nella nostra picturebox un file di loading…
 
  //estraiamo il nome del file dalla sua path completa
 
  string __fileName = this.txt_FileAttach.Text.Substring(this.txt_FileAttach.Text.LastIndexOf("\") +1);
 
  string __fileFtp =  "ftp://www.mioserver/miacartella/" + __fileName
 
  PepMindFtp.StartIt(__fileFtp, txt_FileAttach.Text, "myUser", "myPwd");
 
}

A questo punto possiamo facilmente visualizzare i file in modo asincrono oppure sincrono.
Il vantaggio è che l’upload dei file è gestita separatamente e quindi la vostra applicazione è libera di fare altre operazioni.
Lo stesso vale per gli altri due metodi.

CS contenente le classi necessario al funzionamento dell’applicazione


(Nessun voto)
Loading ... Loading ...

Inserisci il tuo Commento:

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

You must read and type the 5 chars within 0..9 and A..F, and submit the form.

  

Oh no, I cannot read this. Please, generate a