169 похожих чатов

Продолжение моего вопроса с ночи: Я получаю base64 и с помощью

кода ниже предлагаю сохранить файл у пользователя:
// Работает, т.е. создает правильный файл
let link=document.createElement('a');
link.href='data:application/pdf;base64,'+answerObj['pdf_file_bytes_base64']
link.download='report_.pdf'
link.click();

Теперь я хочу что бы браузер ещё и пытался его открыть сразу. Конечно наш браузер не знает что есть у пользователя на компе, но у меня есть строка файла в base64 и я хочу её в новую вкладку отправить.
делаю следующим образом:

window.open("data:application/pdf;base64, " + answerObj['pdf_file_bytes_base64'], '', "height=600,width=800");

Мне открывается пустое окно. В адресной строке имею следующий текст: about:blank#blocked

Вопрос:
Возможно это как-то провернуть?
Что я делаю не так?)

9 ответов

8 просмотров

Посмотрите вот это обсуждение, может что-то оттуда сработает https://overcoder.net/q/2917031/показать-данные-base64-pdf-с-помощью-windowopen-в-новой-версии-chrome Но не факт, что это сработает в любом браузере.

Konstantin-Vinogradov Автор вопроса
Vitaliy Ponomarev
Посмотрите вот это обсуждение, может что-то оттуда...

Этот вариант сработал для хрома, и маленького файла PDF (100-200KB). Но он не работает для файла в 4MB. Страница подвисает и грузиться до бесконечности. Сейчас проверяю на других браузерах. Думаю это максимум, который можно выжать из этого функционала. Сейчас рассматриваю создание контейнера на текущей странице и встроить туда iframe с пдф документом. Ещё раз спасибо

Konstantin Vinogradov
Этот вариант сработал для хрома, и маленького файл...

попробуйте блоб сделать и его открыть, как в том же вопросе/ответе посоветовали: https://stackoverflow.com/a/46807536 edit:не та ссылка

ещё кстати большой вопрос, где вы получаете base64 и зачем

Konstantin-Vinogradov Автор вопроса
allpeg
попробуйте блоб сделать и его открыть, как в том ж...

Через блоб пытался все утро, и в конце концов пришел сюда. Блоб вообще выдавал что-то типо ошибки pdf-файла.

Konstantin-Vinogradov Автор вопроса
allpeg
https://jsfiddle.net/alpeg/rng19432/

А у вас это работает?

Konstantin Vinogradov
А у вас это работает?

да. попробуйте так: https://jsfiddle.net/alpeg/rng19432/

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта