Угловое преобразование byte64 в pdf возвращает # Заблокировано - PullRequest
0 голосов
/ 12 марта 2019

Работает над преобразованием потоковых данных base64, которые возвращаются из моего отклика java-сервиса, для загрузки в формате PDF в мое угловое приложение, используя atob () для декодирования, а затем добавляя их в функцию загрузки.Преобразование происходит правильно, но при загрузке происходит какая-то ошибка, которая приводит к тому, что стажер возвращает #blocked пустой экран, прикрепленное изображение ниже.Кроме того, это моя часть кода для той же функции, будет запрашивать помощь в том, что, возможно, может быть проблема, заранее спасибо

onSubmitPropPreviewPDF() {
        console.log(this.propNo)
        let formValueProp: any = {
            trans_code: this.propNo.data.trans_code,
        }
        this.policyService.propPreviewPDF(formValueProp)
            .pipe()
            .subscribe(previewdata => {
                this.previewdata = previewdata,
                    console.log('previewdata: ', previewdata);
                console.log(atob(this.previewdata.data.pdf_ccnt));
                const linkSource = (atob(this.previewdata.data.pdf_ccnt));
                console.log(linkSource);
                const downloadLink = document.createElement("a");
                console.log(downloadLink);
                const fileName = "sample.pdf";
                downloadLink.href = linkSource;
                console.log(linkSource);
                downloadLink.download = fileName;
                console.log(linkSource);
                console.log(downloadLink);

                downloadLink.click();

                (error: any) => this.errorMessage = <any>error


            }
            )
    }

Blocked image

1 Ответ

0 голосов
/ 04 апреля 2019

На основе Chromium commit :

Добавить суффикс #blocked к about: пустые URL-адреса, выводимые из FilterURL.

RenderProcessHost :: FilterURL выполняет некоторые проверки безопасностиявляется ли URL-адрес из процесса визуализации действительным.В некоторых случаях он переписывает URL-адрес в about: blank, чтобы избежать фиксации URL-адреса, который недопустим для процесса визуализации.

Этот CL добавляет # блокированный фрагмент ссылки к URL-адресу, поэтому его легче обнаружить, когда этологика вступила в силу и отличает ее от обычной навигации по примерно: пустым URL.

Правильно ли отображается файл sample.pdf на простой html-странице с <embed> или <a> с URL-адресом base64?

Попробуйте преобразовать файл sample.pdf в base64 и отобразить его на тестовой странице, чтобы проверить, правильно ли он отформатирован:

<embed  type="application/pdf" src="data:application/pdf;base64,xxx_your_base64_pdf_xxx"/>

Или попробуйте загрузить его по правойнажмите на ссылку для скачивания:

<a href="data:application/pdf;base64,xxx_your_base64_pdf_xxx">download</a>

Вы также можете использовать библиотеку, такую ​​как FileSaver.js , чтобы продолжить загрузку, если ваш PDF правильно отформатирован.

...