簡體   English   中英

使用字節數組創建 PDF 文件並下載/保存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM