【发布时间】:2011-05-09 06:24:51
【问题描述】:
我正在使用 vb.net(.Net 4.0) 使用 ftp 将文件上传到服务器。
我可以上传小文件(10MB)而不会出现任何错误。 但是当我尝试上传超过 2GB 的大小时,它会导致以下错误
System.OverflowException:对于 Int32 而言,值太大或太小。
我正在使用代码..
Private Function UploadFileToServer(ByVal sSourceFile As String, ByVal sTargetFile As String) As Boolean
Dim objCredential As NetworkCredential
Dim objRequest As FtpWebRequest
Dim objReader As FileStream
Dim objStream As Stream
Dim objResponse As FtpWebResponse
Dim bResult As Boolean = False
Try
objRequest = DirectCast(WebRequest.Create(sTargetFile), FtpWebRequest)
'objRequest = FtpWebRequest.Create(sTargetFile)
objRequest.Method = WebRequestMethods.Ftp.UploadFile
objCredential = New NetworkCredential(USER_NAME, PASSWORD)
objRequest.Credentials = objCredential
objReader = New FileStream(sSourceFile, FileMode.Open)
Dim objBuffer(Convert.ToInt32(objReader.Length - 1)) As Byte
objReader.Read(objBuffer, 0, objBuffer.Length)
objReader.Close()
objRequest.ContentLength = objBuffer.Length
objStream = objRequest.GetRequestStream()
objStream.Write(objBuffer, 0, objBuffer.Length)
objStream.Close()
objResponse = DirectCast(objRequest.GetResponse, FtpWebResponse)
objResponse.Close()
bResult = True
Catch ex As Exception
End Try
Return bResult
End Function
它在这一行显示错误
Dim objBuffer(Convert.ToInt32(objReader.Length - 1)) As Byte
谁能帮帮我。
谢谢,
森提尔
【问题讨论】: