El problema no es tu RAM sino que el ancho de banda no soporta tanto, cuando se envían datagramas por la web no deben ser muy grandes porque al pasar por tantos servidores los datos se podrían perder o peor, pueden llegar corrompidos.
Primero intenta envíar menos cantidad de datos, si no funciona se buscará otra solución.
Pero igualmente esa forma de leer el archivo es media inestable, te dejo una alternativa.
Option Explicit
Private Type FileInfo
Filename As String
FileSize As Long
TotalPieces As Long
BytesPerPiece As Long
ByteRemaining As Long
End Type
Private Function ParseFile(Filename As String, BytesPerPiece As Long) As FileInfo
With ParseFile
.Filename = Filename
.FileSize = FileLen(Filename)
.TotalPieces = .FileSize \ BytesPerPiece
.BytesPerPiece = BytesPerPiece
.ByteRemaining = .FileSize Mod .ByteRemaining
End With
End Function
Private Function CropFile(FileSpec As FileInfo) As Single
Dim hFile%, snTime!
Dim sData$, i&
snTime = Timer
With FileSpec
hFile = FreeFile
Open .Filename For Binary Lock Read Write As #hFile
sData = String$(.BytesPerPiece, 0)
For i = 1 To .TotalPieces
If i < .TotalPieces Then
Get #hFile, , sData
Else
sData = String$(.ByteRemaining, 0)
Get #hFile, , sData
End If
'Luego acá se enviarían los datos.
'
Next
End With
End Function
En resumen es lo mismo pero un poco más estructurado. Y si usas la API es dos veces más rápido.
Saludos.