[英]Create PDF file with byte array and download/save it
我有一個調用服務器端方法的 AJAX function ,此方法調用 API 並返回一個字節數組。 我想將此字節數組轉換為 PDF 文件,然后下載該文件。 我有這個代碼:
AJAX function:
function ObtenerF(nroF) {
debugger;
$.ajax({
type: 'POST',
url: '/De.aspx/BuscarFVW',
data: JSON.stringify({ nF: nroF }),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {
debugger;
if (msg.d != null) {
window.open();
}
},
error: function () {
}
});
}
方法背后的代碼:
[System.Web.Services.WebMethod]
public static byte[] BuscarFVW(string nF)
{
var respuesta = new Serv.L.SeL((U)HttpContext.Current.Session["UT"]).ObtenerF(nF);
if (respuesta != null)
{
File.WriteAllBytes(@"~\Content\tmp\hello.pdf", respuesta.F);
return respuesta.F;
}
else
return null;
}
我在BuscarFVW方法中嘗試了這個,但是在File.WriteAllBytes中無法將相對路徑作為參數傳遞,也不知道如何自動下載新的PDF文件或保存在項目中的tmp文件夾中,並打開一個帶有 PDF 文件的新選項卡(我可以使用絕對路徑進行此操作,但如果我在另一台服務器上公開該項目,這將不起作用,但這在我的本地使用 C:/User/Desktop 之類的路徑)。
有什么建議嗎? 謝謝你。
您不需要使用 ajax 來下載 PDF,這樣做是一個壞習慣。 使用可以直接使用標簽下載文件或iframe標簽來呈現它。
你可以使用 window.location = '[your rout]'; 下載文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.