Я использую vb.net (.Net 4.0) для загрузки файла на сервер, используя ftp.
Я могу загрузить файл небольшого размера (10 МБ) без каких-либо ошибок.
но когда я пытаюсь загрузить более 2 ГБ, это приводит к следующей ошибке
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
Может кто-нибудь, пожалуйста, помогите мне.
Спасибо
Senthil