Me da la sensación que tu problema no está en cómo 'se sube' el fichero, sino más bien en cómo lo lees.
Si abres el fichero en modo binario (OPEN fichero FOR BINARY AS #numero) y mediante el método GET puedes leer uno o más bytes del fichero, almacenando el valor de cada byte en una variable o en un elemento de una matriz.
El valor Lo verás según el tipo de datos de la variable: si la variable es de tipo byte, lo verás como un número en decimal del 0 al 255, si es carácter lo verás como el caracter ascii correspondiente al valor del byte, ...
Podrías usar una función de este tipo para obtener el valor binario de un número decimal como ceros y unos en una cadena (aunque no sé cómo ira el rendimiento). Si el parámetro 'RevByteOrder' es True, indica que el orden de los bits que componen el número están en orden inverso, es decir, primero el bit más significativo :
Public Function Binario(ByVal NumBase 10 as Long,Optional ByVal RevByteOrder As Boolean) As String
    
    Dim intExp As Integer
    Dim str1 As String
    Dim int1 As Integer
    Do While True
        If 2 ^ intExp > NumBase10 Then
            If intExp > 0 Then
                intExp = intExp - 1
            End If
            Exit Do
        End If
        intExp = intExp + 1
    Loop
    If Not RevByteOrder Then
        For int1 = intExp To 0 Step -1
            If NumBase10 < (2 ^ int1) Then
                str1 = "0" & str1
            Else
                str1 = "1" & str1
                NumBase10 = NumBase10 - (2 ^ int1)
            End If
        Next int1
    Else
        For int1 = intExp To 0 Step -1
            If NumBase10 < (2 ^ int1) Then
                str1 = str1 & "0"
            Else
                str1 = str1 & "1"
                NumBase10 = NumBase10 - (2 ^ int1)
            End If
        Next int1
    End If
    Binario = str1
End Function
Espero que esto te vaya bien... Saludos y suerte.