這是我的痛苦問題。我從一個FTP(一個開發站點)轉移到另一個FTP(一個測試站點)。給我留下改變這個過程的想法。這是我的手。在任何情況下,這裏是我的方法:FTPWebRequest:從一個FTP傳輸到另一個FTP,目標文件損壞
Public Function TransferFile(originalFile As String, destinationFile As String) As String
Try
'FileStream for holding the file
Dim uploadRequest As FtpWebRequest = WebRequest.Create(destinationFile)
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
uploadRequest.Credentials = New NetworkCredential(ftp_user, ftp_pw)
uploadRequest.UseBinary = True
uploadRequest.UsePassive = False
'connect to the server
Dim fileRequest As FtpWebRequest = WebRequest.Create(originalFile)
fileRequest.Method = WebRequestMethods.Ftp.DownloadFile
fileRequest.Credentials = New NetworkCredential(ftp_user, ftp_pw)
fileRequest.UseBinary = True
fileRequest.UsePassive = False
'get the servers response
Dim response As WebResponse = fileRequest.GetResponse()
'retrieve the response stream
Dim stream As Stream = response.GetResponseStream()
CopyStream(stream, uploadRequest.GetRequestStream)
stream.Close()
response.Close()
Return "File transfered"
Catch ex As System.Security.SecurityException
Return ex.Message
Catch ex As Exception
Return ex.Message
End Try
End Function
Public Shared Sub CopyStream(input As Stream, output As Stream)
Dim buffer As Byte() = New Byte(32767) {}
While True
Dim read As Integer = input.Read(buffer, 0, buffer.Length)
If read <= 0 Then
Return
End If
output.Write(buffer, 0, read)
End While
End Sub
這適用於ASPX文件和其後面的.vb代碼。當我們嘗試傳輸.DLL文件時,它們在服務器上顯示爲0字節,有時實際傳輸。問題是,儘管尺寸與原始尺寸相同,但它們的行爲好像是腐敗的。有沒有人有辦法解決嗎?
我只是用你的代碼做了一個測試,它對我來說工作得很好。我區分了兩個DLL,它們是相同的。 – 2011-03-17 18:45:30