我正在使用.NET 4 C#。我正在嘗試上傳ZIP文件,然后將其下載到(我的)服務(wù)器。對(duì)于上傳我有using (WebClient client = new WebClient()){ FtpWebRequest request = (FtpWebRequest)WebRequest.Create(MyUrl); request.Method = WebRequestMethods.Ftp.UploadFile; request.EnableSsl = false; request.Credentials = new NetworkCredential(MyLogin, MyPassword); byte[] fileContents = null; using (StreamReader sourceStream = new StreamReader(LocalFilePath)) { fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); } request.ContentLength = fileContents.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(fileContents, 0, fileContents.Length); } FtpWebResponse response = null; response = (FtpWebResponse)request.GetResponse(); response.Close();}這似乎可行,因?yàn)槲以诜?wù)器上獲得了正確大小的文件。1)我如何流式傳輸它,而不是先將其加載到內(nèi)存中?我將上傳非常大的文件。對(duì)于下載,我有using (WebClient client = new WebClient()){ string HtmlResult = String.Empty; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(remoteFile); request.Method = WebRequestMethods.Ftp.DownloadFile; request.EnableSsl = false; request.Credentials = new NetworkCredential(MyLogin, MyPassword); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) using (Stream responseStream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(responseStream)) using (FileStream writer = new FileStream(localFilename, FileMode.Create)) { long length = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[2048]; readCount = responseStream.Read(buffer, 0, bufferSize); while (readCount > 0) { writer.Write(buffer, 0, readCount); readCount = responseStream.Read(buffer, 0, bufferSize); } }}2)一切似乎都可以正常工作……除了當(dāng)我嘗試解壓縮下載的ZIP文件時(shí),我得到的是無(wú)效的ZIP文件。
- 1 回答
- 0 關(guān)注
- 385 瀏覽
添加回答
舉報(bào)
0/150
提交
取消