У меня есть приложение, которое я создаю, используя 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, но я пытался даже обойти его, и он все еще не работает. Можете ли вы помочь мне в этом?