2016-04-11 5 views
0

私は私のDBにそれを変換して挿入したファイルがあります。そして、私はそこからそれを引き出して、それをダウンロードしようとするが、何のダウンロードバイト配列フ​​ァイル

は[{ バイトを を試してみません

byte[] file = File.ReadAllBytes(outputpath); 
    string filesting = Convert.ToBase64String(file); 
    //INSERT INTO DB 

を] bytes = Convert.FromBase64String(file);

   HttpContext.Current.Response.ContentType = "application/force-download"; 
       HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=labtest.avi"); 
       //HttpContext.Current.Response.Buffer = true; 
       // ms.WriteTo(HttpContext.Current.Response.OutputStream); 
       HttpContext.Current.Response.BinaryWrite(bytes); 
       HttpContext.Current.Response.End(); 

} キャッチ {

}

が、何がダウンロードされる(例外の例)...

なぜ?

答えて

1

Response.BinaryWrite()を使用してMemoryStreamを削除してみてください。次のコードは、(私がRESXリソースからファイルをロードしたものの、しかし、バイト配列として)私のテストで働いていた:

Response.ContentType = "application/force-download"; 
Response.AppendHeader("Content-Disposition", "attachment;filename=labtest.avi"); 

byte[] bytes = Convert.FromBase64String(file); 
Response.BinaryWrite(bytes); 

Response.End(); 
+0

まだ何も... –

+0

その後、我々はいくつかのより多くの情報が必要になりますが、ダウンロードされません。以前に使用した "MemoryStream"、 "Response.Buffer = true"、 "Response.Clear()"のようなものを除いて、私が投稿した正確なコードを使用していますか?そして、そのコードをどこで正確に使っているのですか?実行するとどうなりますか?私は単純なボタンのOnClickハンドラでテストし、それをクリックするとダウンロードするように促しました...ファイルの内容が表示されているのか、空のページだけが表示されていますか?ファイルがDBから正しく取得されたことを確認していますか? – bassfader

+0

はい。あなたが投稿した正確なコードを使用しています。 しかし、try catchでエラーメッセージが表示されます - スレッドが中止されました。 –