2016-09-22 13 views
0

画像の画像ボックスに画像を表示するために以下のコードを使用しましたが、データベースから読み取った後にファイルを開くコード(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) 
+0

probabbly重複http://stackoverflow.com/questions/8624071/save-and-load-memorystream-to-from-a-file – Mat

答えて

1

ファイルをどこかに保存する必要があります。 GetTempPathメソッドを使用して一時ファイル名を取得することをお勧めします。

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

EDIT:あなたは、いくつかの擬似コードProcessクラスに

を使用することにより、マシンのデフォルトのプログラムでそれを開くことができるファイルを保存した後

eudoコードが正しく動作しません;-)ここに別の抜粋です:

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

    File.WriteAllBytes(fileName, imageByteArray); 

    Process.Start(fileName); 
+0

は、ありがとう、私はエラー "メソッドのためのオーバーロードはありません"書き込みは1つの引数を取る "、何かを助けてください、また変数" filename "と" fileName "は同じではありません。 – Masoud

関連する問題