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中文网其他相关文章!