@BoJIog9I

Pdf from byte[]?

Есть контроллер на джава который на пост запрос отвечает pdf файлом в виде массива байт. Есть страничка на jquery c одним полем, куда вносится json и кнопкой отправить, которая посылает пост запрос на на рест контроллер. На Беке запрос обрабатывается нормально и когда я сохраняю массив байт в pdf файл на беке - все ок, но тот файл, который сохраняет фронт почему то пустой и при этом размер файла больше чем тот который сохраняется на беке(48кб и 28кб)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>FileGen Administration UI</title>
    <script src="jquery-3.6.1.min.js"></script>
</head>
<body>
<h1>FileGen Administration UI</h1>
<p><textarea rows="50" cols="200" id="fileGenRequest" name="fileGenRequest"></textarea></p>
<input type="button" value="generate file" onclick="sendRequest()">
<script type="text/javascript">
    function sendRequest() {
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            responseType: "octet/stream",
            url: "http://localhost:8080/generate/file",
            data: $("#fileGenRequest").val()
            ,
            success: function (result) {
                    console.log(result);
                if (result) {
                    var file = new Blob([result], {
                        type: 'application/pdf'
                    });
                    console.log(file)
                    var fileUrl = URL.createObjectURL(file);
                    window.open(fileUrl);
                } else
                    console.log("ОШИБКА!!!")
            }
        })
    }
</script>
</body>
</html>


куда копать найдено - прилетает массив байт в формате asni, a фронт пытается его прочитать в utf-8, вопрос как-то можно изменить кодировку на фронте?
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
@BoJIog9I Автор вопроса
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>FileGen Administration UI</title>
    <script src="jquery-3.6.1.min.js"></script>
</head>
<body>
<h1>FileGen Administration UI</h1>
<p><textarea rows="50" cols="200" id="fileGenRequest" name="fileGenRequest"></textarea></p>
<input type="button" value="generate file" onclick="sendRequest()">
<script type="text/javascript">
    function sendRequest() {
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "http://localhost:8080/generate/file",
            data: $("#fileGenRequest").val(),
            xhrFields: {
                 responseType: 'blob'
            }
            success: function (result) {
                    console.log(result);
                if (result) {
                    var file = new Blob([result], {
                        type: 'application/pdf'
                    });
                    console.log(file)
                    var fileUrl = URL.createObjectURL(file);
                    window.open(fileUrl);
                } else
                    console.log("ОШИБКА!!!")
            }
        })
    }
</script>
</body>
</html>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект