2017-06-27 22 views
1

"test test test"というテキストがテキストとしてあり、Oracleを使用してファイルをBLOBとして取得しています。バイト[]を使用してデータ。 Oracleから取得しているデータは "74657374207465737420746573742074657374"です。このファイルをダウンロードしようとすると、ダウンロードしたファイルに奇妙な記号がいくつかあります。 私が試したコードは、私はさまざまな方法を試してみたBLOBデータをMVCのファイルとしてダウンロード

public ActionResult DownloadFiles(string fileSeq) 
    {    
     var byteArray=byte_array_got_from_oracle; 
     var stream = new MemoryStream(byteArray); 
     return new FileStreamResult(stream, MediaTypeNames.Application.Octet); //since the file could be of any type 
    } 

で、どれも元のデータをテキストファイルをダウンロードしていないようにみえます。

+0

がどのように 'byte_array_got_from_oracle'を得ていますか? – mason

+0

@mason:データをXMLとして返し、それをクラスオブジェクトに変換するOracleパッケージ関数があります – praveen

+0

XML?それは正しいとは言えません。そのため、あなたの質問に[MCVE](https://stackoverflow.com/help/mcve)を含める必要があります。あなたの質問は完全ではありません。 – mason

答えて

0

このソリューションをお試しください:

public ActionResult DownloadTest() 
    { 
     var data = new byte[] { 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74 }; 


     return File(data, MediaTypeNames.Application.Octet); 
    } 

そして、ダウンロードしたファイルが含まれています

test test test test 
+0

私が持っているバイト配列には、 "249、142、185、.."のような値があります。私はこれらの値が何であるか分からない – praveen

+0

それはmetterではない、解決策はFileStreamResultではなくFile(byte_array_got_from_oracle、MediaTypeNames.Application.Octet)メソッドを使用することです – alexqc

関連する問題