Tôi đã nhận được yêu cầu ajax đến Máy chủ của tôi nơi tôi đang tạo tệp PDF. Bây giờ tôi muốn hiển thị tập tin này trong một cửa sổ mới/tab hoặc chỉ cần tải về nó. Làm thế nào tôi có thể làm điều đó?trả lại PDF theo yêu cầu ajax
yêu cầu của tôi
$.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");
}
Tôi nghĩ bạn nên gửi biểu mẫu bình thường đến máy chủ hoặc trả lại địa chỉ cho tài liệu pdf đã tạo mà javascript có thể chuyển tiếp trình duyệt sang cửa sổ mới ... –
Giải pháp chung: Điều này phù hợp với tôi (PDF hộp thoại phương thức từ một byte [] qua cuộc gọi MVC-ajax) –
kamgman