Я сгенерировал отчет в формате 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-файл в определенный каталог, используя исправление кода, приведенного выше, или любую другую идею?