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 中国語 Web サイトの他の関連記事を参照してください。