你應該看看「Content-Disposition」標題;例如,將「Content-Disposition」設置爲「attachment; filename = FileName.pdf」將提示用戶(通常)使用「另存爲:FileName.pdf」對話框,而不是打開它。但是,這需要來自執行下載的請求,所以在重定向期間您不能這樣做。但是,ASP.NET爲此提供了Response.TransmitFile。例如(假設你不使用MVC,它有其他可取的方案):
Response.Clear();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=FileName.pdf");
Response.TransmitFile(filePath);
Response.End();
如果你是嘗試打開,然後在阿比將文件轉換流方式BytesArray,然後填寫內容
HttpResponseMessage result = null;
result = Request.CreateResponse(HttpStatusCode.OK);
FileStream stream = File.OpenRead(path);
byte[] fileBytes = new byte[stream.Length];
stream.Read(fileBytes, 0, fileBytes.Length);
stream.Close();
result.Content = new ByteArrayContent(fileBytes);
result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "FileName.pdf";
您需要在響應標頭中設置「content-disposition」 - http://stackoverflow.com/questions/1012437/uses-of-content-disposition-in-an-http-response-header。 – adrianbanks
我如何在上面的代碼中做到這一點? –
我還沒有使用過RazorPDF,但是您可能會在返回PDF文件之前添加鏈接答案中的代碼。 – adrianbanks