gpt4 book ai didi

c# - 在 mvc4 c# 中调用 ajax 进行文件下载

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:14 24 4
gpt4 key购买 nike

我正在对 Controller 进行 ajax 调用。我正在创建一个 pdf 文件。

如何将它发送到浏览器以便用户可以下载它。

    [HttpPost]
public void Createpdf(string htmlpage)
{
var htmlToPdfConverter = new HtmlToPdf();
string htmlCode = "<!DOCTYPE html><html lang='en'><head><title>Report</title>/head><body>"
+ htmlpage
+ "</body></html>";
string baseUrl = null;
pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlCode, baseUrl);
System.IO.File.WriteAllBytes(@"D:\HubReport.pdf", pdfBuffer);
//System.Web.HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
//System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition",
// String.Format("{0}; filename=HubReport.pdf;size={1}", "attachment", pdfBuffer.Length.ToString()));
//System.Web.HttpContext.Current.Response.BinaryWrite(pdfBuffer);
//System.Web.HttpContext.Current.Response.End();
}

最佳答案

我还没有测试过这个,但这可能会给你一些指示。

您将文件名传递给此操作。并将此操作作为新窗口的 url。

public FileResult Getfile(string downloadfileName)
{
byte[] fl = System.IO.File.ReadAllBytes(@"C:\temp\" + downloadfileName);
string fileName = "Somefile.pdf";
return File(fl, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

编辑

我测试了这个,它工作得很好

这是我的示例查看代码

@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<script type="text/javascript">
$(document).ready(function () {
//You need to call this click function from you ajax Success callback.
$("#getFile").click(function () {
window.open('@Url.Action("GetFile","Home","test.pdf")', "downloadfile");
});
});

</script>
<input type="button" value="GetFile" id="getFile" />

这是 Controller

public class HomeController : BaseController
{
public ActionResult Index()
{
return View();
}

public FileResult Getfile(string downloadFileName)
{
byte[] fl = System.IO.File.ReadAllBytes(@"C:\temp\sampleFile.pdf");
string fileName = "Somefile.pdf";
return File(fl, System.Net.Mime.MediaTypeNames.Application.Octet);
}
}

这是输出

Sample output

关于c# - 在 mvc4 c# 中调用 ajax 进行文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com