A partire da .NET 6, le classi HttpWebRequest, FtpWebRequest e le loro collegate sono state deprecate e per nuovi progetti ne è sconsigliato l'utilizzo. Mentre la classe HttpWebRequest è stata sostituita da HttpClient, FtpWebRequest non ha visto e non vedrà lo sviluppo di una nuova controparte moderna all'interno di .NET. Nella documentazione, Microsoft consiglia anzi l'adozione di librerie di terze parti. In questo script vedremo come utilizzare la libreria FluentFTP per effettuare l'upload di un file, mentre nei prossimi script ci occuperemo di altri task come il download e l'enumerazione del contenuto di una cartella.
Per utilizzare FluentFTP, dobbiamo innanzitutto installare l'omonimo package da NuGet e poi creare un'istanza della classe FtpClient passando al costruttore parametri come l'indirizzo IP o l'url, la porta, username e password (se necessari). Una volta ottenuta l'istanza, dobbiamo invocare il metodo AutoConnectAsync per stabilire la connessione al server. A questo punto possiamo effettuare l'upload di un file invocando il metodo UploadFileAsync passando in input il percorso del file sul client e il percorso sul server comprensivo del nome del file.
using var client = new FtpClient("1.1.1.1", "username", "pwd"); await client.AutoConnectAsync(); await client.UploadFileAsync(@"C:\MyFile.txt", "/myfolder/myfile.txt");
La libreria offre anche overload per specificare cosa fare se il file esiste già sul server, se creare la cartella sul server nel caso non esista e un callback per tracciare lo stato di avanzamento dell'upload.
Se invece del file fisico abbiamo a disposizione uno stream o un array di byte, possiamo usare i metodi UploadStreamAsync o UploadByteArrayAsync che supportano gli stessi parametri visti nell'esempio sopra con l'eccezione della sorgente che non è il percorso del file, ma un'istanza dello stream o dell'array di byte.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Cancellare una run di un workflow di GitHub
Utilizzare gRPC su App Service di Azure
Generare la software bill of material (SBOM) in GitHub
Gestione CSS in Blazor con .NET 9
Gestione file Javascript in Blazor con .NET 9
Utilizzare una qualunque lista per i parametri di tipo params in C#
Ridurre il reflow cambiando il CSS
Ordinare randomicamente una lista in C#
Gestione dei nomi con le regole @layer in CSS
Recuperare l'ultima versione di una release di GitHub
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Combinare Container Queries e Media Queries
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il pattern matching per semplificare le espressioni
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare requestAnimationFrame per animazioni fluide