2017-09-13 10 views
1

生成されているpdf文書をダウンロードして保存することができますが、ダウンロードする代わりにブラウザで開きます。 私はこのをダウンロードする代わりにブラウザで開く(itextを使用)mvc

MemoryStream os = new MemoryStream(); 
PdfWriter writer = new PdfWriter(os); 
var pdfDocument = new PdfDocument(writer); 

using (var document = new Document(pdfDocument)) 
{ 
    //I am adding different sections here 
} 
var response = new HttpResponseMessage 
{ 
    StatusCode = HttpStatusCode.OK, 
    Content = new ByteArrayContent(os.ToArray()) 
}; 

response.Content.Headers.Add("Content-Type", "application/pdf"); 
response.Headers.Add("Content-disposition", "attachment;filename=" + "testPDF.pdf"); 
return response; 

応答のようなものは、さらに、コントローラに送信されており、そこにそれがダウンロードされているが、私は新しいブラウザで開くようにしたいです。 「Content-disposition」、「attachment; filename」が機能しません。

私がBLOBに格納しているところで、さらに戻り値をコントローラに渡して、ダウンロードを続けます。

public async Task<IActionResult> GenerateDocument(int id) 
    { 
     var result = await _applicationService.GenerateDocument(id); 
     var blobResult = await _applicationService.SaveDocument(id, result.ResponseObject); 

     IActionResult OnSuccess() => 
      new RedirectResult(blobResult.ResponseObject.URI, true); 

     return HandleResult(OnSuccess, blobResult.Status); 
    } 
+0

を表示するために知っているように、コンテンツ処分のためinlineを使いたいだろうが、事は私のために、彼らが働いていない言及したソリューションです。私のコメントでも言及しました。 – Tina

答えて

2

あなたは、ブラウザはそれを私は同様の質問があります知っている

//...code removed for brevity 
var buffer = os.ToArray(); 
var contentLength = buffer.Length; 
var statuscode = HttpStatusCode.OK; 
var response = Request.CreateResponse(statuscode); 
response.Content = new ByteArrayContent(buffer); 
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); 
response.Content.Headers.ContentLength = contentLength; 
ContentDispositionHeaderValue contentDisposition = null; 
if (ContentDispositionHeaderValue.TryParse("inline; filename=" + "testPDF.pdf", out contentDisposition)) { 
    response.Content.Headers.ContentDisposition = contentDisposition; 
} 
return response; 
+0

私はコードを置き換えようとしましたが、download.Iはダウンロード部分を気にしませんでしたが、ブラウザで開く必要があります。私はコントローラと何かを考えています。 – Tina

関連する問題