Загрузите .PDF с VARBINARY (MAX) на сервер SQL - PullRequest
0 голосов
/ 15 февраля 2020

Я могу скачать PDF из моего кода ниже, однако, «PDF поврежден» упоминается, когда я пытался открыть файл PDF. В чем проблема?

enter image description here

Я использую

byte[] binFile = File.ReadAllBytes(file_path_with_filename_with_ext);

в качестве параметра SQL, который прошел через хранимую процедуру.

C# код

[HttpGet]
public IActionResult DownLoadPdf(int? ID)
{
    string sql = @"SELECT ID, PDFReport
                   FROM [TABLE]";    // which is VARBINARY(MAX) value

    byte[] Report = _dbContext.PDFdto.FromSql(sql).AsNoTracking().Where(r => r.ID == ID.ToString()).Select(r => r.PDFReport).FirstOrDefault();

    return Json(new { Report });
}

HTML:

$scope.loadPdfClick = function (ID) {
$http({
    url: '@Url.Content("~/Report/DownLoadPdf")',
    method: "GET",
    params: {
        "ID": ID
    },
    headers: {
        'Content-type': 'application/json'
    },
    responseType: 'arraybuffer'
}).success(function (data, status, headers, config) {
    var blob = new Blob([data], { type: "application/pdf" });
    var objectUrl = URL.createObjectURL(blob);
    var a = document.createElement('a');
    document.body.appendChild(a);
    a.setAttribute('style', 'display:none');
    a.setAttribute('href', objectUrl);
    var filename = "Report_Test.pdf";
    a.setAttribute('download', filename);
    a.click();
    URL.revokeObjectURL(objectUrl);
}).error(function (data, status, headers, config) {
    messageAlert("ERROR");
});

PS: использование. NET Core 1.1 с Angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...