如何从数据库中读取图像字节后打开文件

时间:2016-09-22 13:43:40

标签: c# winforms

我用下面的代码在图片图片框中显示图片,现在我想在从数据库中读取后添加打开文件的代码(pdf,image,...)

            int imageID = Convert.ToInt32(imageIDComboBox.Text);

            // read image bytes from the database and display in picture box
            Byte[] imageByteArray = ProductDB.ReadImage(imageID);
            MemoryStream ms = new MemoryStream(imageByteArray);

            imagePictureBox.Image = System.Drawing.Image.FromStream(ms);
            ms.Close();

我曾尝试使用下面的代码,但它无法识别响应。

   ms.writeto(Response.outputstream)

1 个答案:

答案 0 :(得分:1)

您需要在某处保存文件。我建议您使用GetTempPath方法获取临时文件名。

保存文件后,可以使用Process类

使用本机的默认程序打开它

一些伪代码:

string fileName = "C:\temp\foo.pdf"; //or use Path.GetTempPath()
ms.Write(new StreamWriter(filename)); //you may want to use a using statement for your file stream to ensure the file is closed
Process.Start(filename);

https://msdn.microsoft.com/en-us/library/system.io.path.gettemppath(v=vs.110).aspx https://www.dotnetperls.com/process

修改

我的伪代码似乎无法正常工作;-)这是另一个代码段:

    Byte[] imageByteArray = ProductDB.ReadImage(imageID);
    string fileName = Path.GetTempPath();

    File.WriteAllBytes(fileName, imageByteArray);

    Process.Start(fileName);