HttpPostedFileBase 丢失 ContentLength

HttpPostedFileBase loses ContentLength

我有一个接受两个 HttpPostedFileBase 参数的函数。 函数一开始,我就转换为字节数组(如下所示)。

在转换为字节数组之前,我可以断点函数并看到 ContentLength 属性 有一个值(类似于 1123512),但有时其中一个字节数组设置为 0 ,当我再次检查 HttpPostedFileBase 时,ContentLength 设置为 0?

public static async Task FileCheck(HttpPostedFileBase Image1, HttpPostedFileBase Image2)
{
    byte[] ByteArray1 = HttpPostedFileBaseToBase64ByteArray(Image1);
    byte[] ByteArray2 = HttpPostedFileBaseToBase64ByteArray(Image2);
}

这里是字节数组转换:

public static byte[] HttpPostedFileBaseToBase64ByteArray(HttpPostedFileBase Image)
{
    //Get bytes from image
    byte[] ImageAsBytes = new byte[Image.ContentLength];

    //Read image binary
    using (BinaryReader BinaryReader = new BinaryReader(Image.InputStream))
    {
        //Insert into byte array
        ImageAsBytes = BinaryReader.ReadBytes(Image.ContentLength);
    }

    return ImageAsBytes;
}

就像我说的,这只是有时会发生,这很奇怪。

使用 VDWWD 的回答 Image.InputStream.Position = 0; 似乎解决了这个问题。