Как отправить PDF blob на контроллер MVC - PullRequest
0 голосов
/ 05 декабря 2018

Я сгенерировал отчет в формате PDF с использованием библиотеки JSRepoprts.Результатом вывода является большой двоичный объект, который можно загрузить в папку «Загрузки».Что мне нужно сделать, это сохранить BLOB-объект в определенной папке на сервере.Я пытался отправить BLOB-объект с помощью XMLHttpRequest, но я получаю запрос с пустым содержимым в контроллере.

Код, который я написал, следующий:

jsreports.export({
        format: 'pdf',
        report_def: def,
        datasets: data_sources,
        outputHandler: function (pdfBlob) {
            $('.report-output-pdf').attr('src', URL.createObjectURL(pdfBlob));

             var xhr = new XMLHttpRequest();
             xhr.open('GET', '/reports/saveReport', true);

             xhr.onload = function () {       
                 console.log(xhr.responseText);
             };              
             xhr.send(pdfBlob);
        }
    });

На стороне сервера (контроллер MVC) код:

public ActionResult saveReport()
    {
        try
        {
            var r = Request;
            int l = Request.ContentLength; // Received 0
            byte[] ba = r.BinaryRead(r.ContentLength);

            return Json(r, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Message = ex.Message }, JsonRequestBehavior.AllowGet);
        }
    }

Результат, как показано вотладчик

У кого-нибудь есть идея, которая поможет мне сохранить PDF-файл в определенный каталог, используя исправление кода, приведенного выше, или любую другую идею?

...