C#/.NET中FTP伺服器檔案的上傳與下載
問題1:串流檔案上傳
為避免在上傳前將大型檔案載入記憶體中,請使用FileStream和Stream.CopyTo直接傳輸檔案。修改後的程式碼如下:
<code class="language-csharp">using (Stream ftpStream = request.GetRequestStream()) using (Stream fileStream = File.OpenRead(@"/local/path/to/file.zip")) { fileStream.CopyTo(ftpStream); }</code>
問題2:下載後ZIP檔無效
透過啟用request.UsePassive = true,確認FTP伺服器是否支援pasv模式(被動模式資料傳輸)。此外,設定request.UseBinary = true以二進位模式傳輸檔案。修改後的程式碼如下:
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip"); request.Credentials = new NetworkCredential("username", "password"); request.Method = WebRequestMethods.Ftp.DownloadFile; request.UsePassive = true; request.UseBinary = true; using (Stream ftpStream = request.GetResponse().GetResponseStream()) using (Stream fileStream = File.Create(@"/local/path/to/file.zip")) { ftpStream.CopyTo(fileStream); }</code>
透過上述修改,您可以成功地向FTP伺服器上傳和下載文件,確保下載後ZIP文件的完整性。
以上是如何在 C# 中有效率地向 FTP 伺服器上傳和下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!