Asp. net core mvc парсинг неверного строкового значения в <script>с использованием Base64 - PullRequest
0 голосов
/ 26 марта 2020

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

Приложение работает по:

  1. загрузка файла
  2. файл декодирования (IFileFormat) в байты
  3. помещение байтов в базу данных
  4. взятие байтов из базы данных
  5. преобразование байтов в base64
  6. создание ссылки и просмотр изображения (работает). или используя pdf. js, чтобы нарисовать pdf как изображение на холсте

код контроллера:

            string imageDataBytes = Convert.ToBase64String(image.FileData);
            ViewBag.basesixtyfour = imageDataBytes;
            Console.WriteLine(imageDatabytes);

код сценария :

<script>
    console.log('@ViewBag.basesixtyfour');
</script>

короче говоря, консольная запись дает мне строковое значение, которое составляет 275 500 байт .

console.log дает мне строковое значение, которое равен 308,050 байт .

Я пытался использовать модель для переноса строки, но возникает та же проблема. Итак, вопрос в том, , почему это происходит? есть ли обходные пути?

1 Ответ

0 голосов
/ 26 марта 2020

Понял это через некоторое время.

Пришлось сериализовать для json и затем десериализовать с помощью Newsoft. Json

контроллер

ViewBag.story = JsonConvert.SerializeObject(imageDataBytes);

Просмотр

var pdfData = atob('@Html.Raw(JsonConvert.DeserializeObject(ViewBag.story))');
...