这是我的痛苦问题。我从一个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