我正在使用vb.net(.Net 4.0)将文件上传到使用ftp的服务器。使用ftp的vb.net文件上传错误
我可以没有任何错误地上传文件小尺寸(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
错误可以任何一个请帮助我。
谢谢,
塞特希
嗨,谢谢你的回复,当我使用转换。ToInt64,我得到这个错误“System.OverflowException:算术运算导致溢出。” – Senthil 2011-05-09 06:31:12
数组的最大元素数为2,147,483,647 - “2GB - 1” - 因此这种转换不会有任何帮助。 :( – 2011-05-09 06:33:09
@ Will A谢谢!然后添加一个大块的阅读将是要走的路。 – 2011-05-09 06:43:35