无法将System.IO.Stream转换为Byte []

时间:2013-05-23 05:07:17

标签: c# asp.net

我在db。中有一个varbinary类型的图像。

在BO层中,它被声明为Byte[]

    public Byte[] Image
    {
         get { return p_image; }
         set { p_image = value; }
    }

要在BO图层中指定其值,我使用了

objBO.Image = FileUploadControl.FileContent

它抛出错误

  

Connot将System.IO.Stream转换为Byte []

有人可以帮助您选择可以转换为FileUploadControl的{​​{1}}参数吗?

2 个答案:

答案 0 :(得分:3)

使用FileUpload.FileBytes属性从Byte[]

获取FileUploadControl
  

获取使用a指定的文件中的字节数组   FileUpload控制。

FileUpload fileUpload = new FileUpload();
Byte[] fileBytes = fileUpload.FileBytes;
  

FileUpload控件不会自动从中读取文件   客户。您必须明确提供允许的控件或机制   用户提交指定的文件。例如,您可以提供   用户可以单击以上载文件的按钮。 你的代码   写保存指定的文件可以调用FileBytes属性,   它返回文件的内容。

答案 1 :(得分:1)

而不是FileUploadControl.FileContent您必须使用FileUploadControl.FileBytes

Filecontent为您提供了流,因此要么将流转换为字节,要么直接使用FileBytes