日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

如何在 C# 中使用 FTP 上传文件

發布時間:2023/12/4 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 C# 中使用 FTP 上传文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

咨詢區

  • webvision

我嘗試用 C# 上傳一個文件到 FTP-Server 上,文件已顯示上傳成功但顯示 0Byte,我的代碼大概是這樣的。

private?void?button2_Click(object?sender,?EventArgs?e) {var?dirPath?=?@"C:/Documents?and?Settings/sander.GD/Bureaublad/test/";ftp?ftpClient?=?new?ftp("ftp://example.com/",?"username",?"password");string[]?files?=?Directory.GetFiles(dirPath,"*.*");var?uploadPath?=?"/httpdocs/album";foreach?(string?file?in?files){ftpClient.createDirectory("/test");ftpClient.upload(uploadPath?+?"/"?+?Path.GetFileName(file),?file);}if?(string.IsNullOrEmpty(txtnaam.Text)){MessageBox.Show("Gelieve?uw?naam?in?te?geven?!");} }

回答區

  • cdev

很簡單,在 .NET5 中可以這么實現。

async?Task<FtpStatusCode>?FtpFileUploadAsync(string?ftpUrl,?string?userName,?string?password,?string?filePath) {FtpWebRequest?request?=?(FtpWebRequest)WebRequest.Create(ftpUrl);request.Method?=?WebRequestMethods.Ftp.UploadFile;request.Credentials?=?new?NetworkCredential(userName,?password);using?(FileStream?fileStream?=?new?FileStream(filePath,?FileMode.Open,?FileAccess.Read))using?(Stream?requestStream?=?request.GetRequestStream()){await?fileStream.CopyToAsync(requestStream);}using?(FtpWebResponse?response?=?(FtpWebResponse)await?request.GetResponseAsync()){return?response.StatusCode;} }

在 .NET Framework 中可以這么實現。

public?void?UploadFtpFile(string?folderName,?string?fileName) {FtpWebRequest?request;string?folderName;?string?fileName;string?absoluteFileName?=?Path.GetFileName(fileName);request?=?WebRequest.Create(new?Uri(string.Format(@"ftp://{0}/{1}/{2}",?"127.0.0.1",?folderName,?absoluteFileName)))?as?FtpWebRequest;request.Method?=?WebRequestMethods.Ftp.UploadFile;request.UseBinary?=?1;request.UsePassive?=?1;request.KeepAlive?=?1;request.Credentials?=??new?NetworkCredential(user,?pass);request.ConnectionGroupName?=?"group";?using?(FileStream?fs?=?File.OpenRead(fileName)){byte[]?buffer?=?new?byte[fs.Length];fs.Read(buffer,?0,?buffer.Length);fs.Close();Stream?requestStream?=?request.GetRequestStream();requestStream.Write(buffer,?0,?buffer.Length);requestStream.Flush();requestStream.Close();} }

然后像下面這樣使用。

UploadFtpFile("testFolder",?"E:\\filesToUpload\\test.img");
  • Saeb Amini

對于文件上傳,為啥要對底層的 WebRequest 進行封裝造輪子呢?你完全可以使用 WebClient 實現 FTP 的文件上傳,參考如下代碼:

using?(var?client?=?new?WebClient()) {client.Credentials?=?new?NetworkCredential(ftpUsername,?ftpPassword);client.UploadFile("ftp://host/path.zip",?WebRequestMethods.Ftp.UploadFile,?localFile); }

點評區

居然用 WebClient 就能輕松的實現文件上傳,Saeb Amini 大佬🐂👃。

總結

以上是生活随笔為你收集整理的如何在 C# 中使用 FTP 上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。