khaleelsyed Ответов: 2

Как показать pdf-файл или файл изображения, перенесенный с ftp - сервера в iframe


Я хочу показать pdf или файл изображения, восстановленный с FTP-сервера в элементе управления IFrame

Что я уже пробовал:

string ParentFolder = ConfigurationManager.AppSettings["DocReqFolder"].ToString();
              int l = filePath.IndexOf('.') + 1;
              string Extn = filePath.Substring(l);
              Ftp_FileHandler Ftp = new Ftp_FileHandler();
              Ftp.FtpPath_withCredents();
              Ftp.FTP_DownloadFile(filePath, ParentFolder);
              var context = System.Web.HttpContext.Current;
              context.Response.Clear();
              context.Response.AddHeader("Content-Disposition", "attachment; filename=" + filePath);
              if (Extn.Contains("PDF") == true || Extn.Contains("pdf") == true)
                  HttpContext.Current.Response.ContentType = "application/pdf";
              else
                  HttpContext.Current.Response.ContentType = "application/octet-stream";
              context.Response.OutputStream.Write(Ftp.file, 0, Ftp.file.Length);
              context.Response.End();

Kornfeld Eliyahu Peter

Итак, что же не так с вашим кодом?

khaleelsyed

код abov загрузит файл в мою систему, но я хочу показать его в управлении iframe

Kornfeld Eliyahu Peter

Отображение файла внутри браузера или нет-это не всегда то решение, которое вы можете принять. Это также зависит от предпочтений конечного пользователя и типа файла...

khaleelsyed

предпочтением конечного пользователя является отображение полученного файла в iframe.

F-ES Sitecore

сделайте src iframe url - адресом страницы, на которой находится код.

khaleelsyed

что я должен назначить url-адресу iframe

2 Ответов

Рейтинг:
11

Richard Deeming

Установка Content-Disposition к attachment заставляет браузер загрузить файл.

Измените его на inline чтобы браузер отображал файл встроенным:

context.Response.AddHeader("Content-Disposition", "inline; filename=" + filePath);

Content-Disposition - HTTP | MDN[^]

NB: Некоторые браузеры не поддерживают отображение встроенных PDF-файлов. Вам нужно будет использовать такую библиотеку, как PDF.js[^] если вам нужно их поддержать.


khaleelsyed

Спасибо за ваше решение. PDF - файлы отображаются в iframe, но изображения-нет.
как исправить эту проблему.

Рейтинг:
1

Kornfeld Eliyahu Peter

Установите атрибут src iframe так, чтобы он указывал на документ:

<iframe src="https://i.ytimg.com/vi/7rB0Hvt1i3Q/maxresdefault.jpg">
  <p>Your browser does not support iframes.</p>
</iframe>

Если вы хотите передать содержимое в потоковом режиме вместо пинты непосредственно в файл вы можете посмотреть здесь как это сделать:
Потоковая Передача Ваших Документов С Помощью Простой Веб-Страницы[^]


khaleelsyed

Можете ли вы пожалуйста, укажите код с примером. я не уверен, как установить src в байтовый массив.

Kornfeld Eliyahu Peter

Вы не можете! Чтобы это понять, вы должны читать и учиться!