我有一個ajax請求到我的服務器,我正在創建一個PDF文件。現在我想在新的窗口/標籤中顯示這個文件,或者只是下載它。我怎樣才能做到這一點?在ajax請求中返回PDF
我的要求
$.ajax({
url: '/Document/CreatePDF',
type: 'POST',
data: {
docid: documentId,
dataId: array
},
traditional: true,
success: function (data) {
}
});
[HttpPost]
public FileStreamResult CreatePDF(long docid, List<long> dataId)
{
var document = _rep.LoadDocument(docid.ToString(), Server.MapPath("~/Documents/") + docid + ".xml");
var exporter = new PDFExporter(document);
MemoryStream fileStream = exporter.CreatePDF();
byte[] PdfByte = fileStream.GetBuffer();
fileStream.Flush();
fileStream.Close();
HttpContext.Response.AddHeader("content-disposition","attachment; filename=form.pdf");
return new FileStreamResult(fileStream, "application/pdf");
}
我覺得你應該或者發送一個正常的形式向服務器或地址返回給創建的PDF文檔,其中的JavaScript可以在瀏覽器中的一個新窗口... – 2012-03-27 21:21:32
通用的解決方案轉發到:這爲我工作(PDF從通過MVC的AJAX調用一個字節[]模態對話框) –
kamgman
2017-06-19 20:07:48