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;
似乎解决了这个问题。
我有一个接受两个 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;
似乎解决了这个问题。