私は現在、Web APIからC#RestClientを使用してファイルをダウンロードしています。 これは、Web API部からファイルを返すための私の現在のコードです:WebAPI - ファイルダウンロードチェックサム?
[HttpGet]
public HttpResponseMessage Generate()
{
var stream = new MemoryStream();
// processing the stream.
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.GetBuffer())
};
result.Content.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "CertificationCard.pdf"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
return result;
}
が、このから撮影:How to return a file (FileContentResult) in ASP.NET WebAPI
私の質問は、私は、ファイルが正しくダウンロードされていることを検証することができますどのように、そしてある - 私はでき何らかの理由でByteArrayでMD5チェックサムを提供し、RestClientでこれをチェックするか、これは完全ではありませんか?
投稿を参照してください:http://stackoverflow.com/questions/10520048/calculate-md5-checksum-for -a-file – jdweng
ファイルのハッシュを生成し、それをレスポンスヘッダーとして追加し、クライアント内でダウンロードが完了したことを確認します。これは、ストリームやネットワークの問題の中でデータの破損が発生する可能性があると考えて、処理するTCPエラー修正機能以外の場合にのみ意味をなさないでしょう。これが必要なのは判断の呼び出しです。http://serverfault.com/questions/692457/why-is-it-good-practice-to-compare-checksums-when-downloading-a-file –
Thanks @AlexKを参照してください。私はヘッダーにMD5ハッシュを追加して、完璧に働いた! :-)これを答えとして残してください – Mathias