Iframe не показывает S3 сохраненный PDF - PullRequest
0 голосов
/ 03 октября 2019

У меня есть приложение, которое я создаю, используя EF и C # с использованием Amazon S3 в качестве файлового сервера. Я загружаю PDF-файлы на S3, сохраняю их URL в своей базе данных и показываю в приложении. Я передаю модель с помощью сеанса в представление, а затем использую For Each для итерации по URL-адресам и для каждого URL-адреса создаю новый iframe, как показано ниже:

@{int i = 1;}
@foreach (var tempimg in (List<TempImage>)Session["TempImages"])
{
    <fieldset class="invoiceFieldsets" data-step="@i" id="FieldSet_@i" hidden>
        <div class="row">
            <div class="col-xs-4">
                <div class="fixed-actions invoiceContainer">
                    <div class="card text-center" id="Picture_@i" style="width:450px;height:500px;background-color:ghostwhite;border:none">
                        @*<div class="card-header">
                                Profit and Loss
                            </div>*@
                        <input type="hidden" id="ImagePath_@i" runat="server" value="@tempimg.ImagePath" hidden />
                        <div class="card-body" display="inline-block" id="imagepreview_@i" style="background-image:url(@tempimg.ImagePath)" hidden>
                            <iframe id="pdfviewer_@i" src="@tempimg.ImagePath" style="width:500px; height:500px;" sandbox="allow-same-origin" hidden></iframe>

                            @*<embed width="500" height="500" name="plugin" id="pdfviewer_@i" src="@tempimg.ImagePath" type="application/pdf">*@

                        </div>

                    </div>
                </div>
            </div>

На основе значения (т. е. если возвращаемый URL-адрес содержит файл .pdf), я скрываю или показываю iframe:

var imgtype = $("#ImagePath_"+current).val();
if (imgtype.indexOf(".pdf") >= 0) {
    $("#pdfviewer_"+current).prop('hidden', false);
    $("#pdfviewer_"+current).attr('src', imgtype);
}
else {
    $("#imagepreview_"+current).prop('hidden', false);
}

Проблема, которая у меня возникает, заключается в том, что изображения отображаются правильно, но файл PDF не отображается. Я получаю предупреждение от CORBS от Google, но я пытался даже обойти его, и он все еще не работает. Можете ли вы помочь мне в этом?

1 Ответ

0 голосов
/ 07 октября 2019

Я нашел проблему. Я обнаружил, что эта часть кода sandbox="allow-same-origin" при определении iframe вызывала проблему. Как только я удалил это, это начало работать. Я надеюсь, что это поможет любому, кто переживает ту же проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...