$ultaNn Ответов: 1

Я должен отобразить pdf-файл в ifram с помощью response.outputstream. write(bytes, 0, filesize);


Я могу получить pdf в браузер , я хочу, чтобы он был в iframe без использования универсального обработчика



byte[] bytes = (byte[])GetData("SELECT   * FROM [CME_Attachment] where ID = '" + ActID + "'").Rows[0]["Attachment"];

              string name = name.pdf;
              int FileSize = Convert.ToInt32(ddd.Rows[0][4].ToString());
              Response.AddHeader("Content-type", "application/pdf");
              Response.AddHeader("Content-   Disposition", "attachment; filename=" + name);
              Response.OutputStream.Write(bytes, 0, FileSize);
              Response.Flush();
              Response.End();


              iframepdf.Attributes["src"] = ;


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

byte[] bytes = (byte[])GetData("SELECT [A_id],[Attachment],[A_name],[A_Ext],[A_size] ,[A_ActivityID],[A_type]" +
              " FROM [CME_Attachment] where A_ActivityID = '" + ActID + "' and A_type = '" + AttID + "'").Rows[0]["Attachment"];

              string name = ddd.Rows[0][2].ToString();
              int FileSize = Convert.ToInt32(ddd.Rows[0][4].ToString());
              //int FileSize = Convert.ToInt32(row["A_size"].ToString());

              Response.AddHeader("Content-type", "application/pdf");
              Response.AddHeader("Content-   Disposition", "attachment; filename=" + name);
              Response.OutputStream.Write(bytes, 0, FileSize);
              Response.Flush();
              Response.End();
              iframepdf.Attributes["src"]

Richard Deeming

И если вы хотите отобразить файл, хранящийся в базе данных, то вам придется использовать универсальный обработчик.

1 Ответов

Рейтинг:
0

F-ES Sitecore

Вы не можете отправить html, содержащий iframe, а также содержимое iframe в одном ответе, вам нужно разделить его на два запроса. Вам понадобится исходная страница для рендеринга iframe, элемент src которого указывает на страницу, которая возвращает только PDF-файл, то есть все ваши строки ответа.* Вероятно, вам придется добавить параметры, необходимые для создания файла в строке запроса, чтобы вы могли читать их так же, как сейчас, однако обратите внимание, что любой человек может просматривать или изменять эти параметры, поэтому не делайте этого, если они чувствительны по своей природе или если вы хотите, чтобы доступ к файлу был кратковременным.

Страница, которая возвращает pdf-файл, не обязательно должна быть обработчиком, это может быть страница aspx (но вам нужно будет добавить response.clear, прежде чем вы начнете писать PDF-файл), но нет никаких причин для того, чтобы этого не было, это облегчает вашу жизнь, и вы все равно должны добавить новый файл в свой проект.


Richard Deeming

Технически, если контент является HTML, и вам все равно Поддержка IE или Edge[^], вы можете использовать то srcdoc атрибут[^]. Есть даже полифилл[^] для старых браузеров.

Но двоичный контент определенно не поддерживается. :)