Nano Hash - криптовалюты, майнинг, программирование

Отображение PDF из базы данных Oracle в браузере из ASP.net

У меня есть поле BLOB, содержащее PDF-документ. Я хочу получить этот BLOB и отобразить PDF-файл в новой вкладке или окне. Я уже получаю BLOB, но не могу его отобразить. Я использую С# и ASP.net 2010. Пока у меня есть такой код:

byte[] blobBuffer = getPDFBlob(selectedOfferId);

if (blobBuffer != null)
{
    Response.ContentType = "application/pdf";
    //Response.AddHeader("Content-Type", "application/pdf");
    //Response.AddHeader("Content-Disposition", "inline");
    Response.BinaryWrite(blobBuffer);
    Response.End();
}

getPDFBlob — это процедура, которая входит в базу данных и извлекает содержимое поля BLOB. Что мне не хватает?

14.03.2012

  • Что происходит? Вы получаете ошибку? Почему вы не можете его отобразить? 14.03.2012
  • Код выполняется, но ничего не происходит... ни ошибки, ничего. 14.03.2012
  • А у вас PDF не открывается? Что происходит в браузере? 14.03.2012
  • почему у вас закомментирована строка Response.AddHeader? 14.03.2012
  • Эти строки не работали, поэтому я закомментировал их, чтобы посмотреть, поможет ли это, но это все еще не работает. 14.03.2012

Ответы:


1

попробуйте добавить:

Response.AddHeader("content-disposition", "inline;filename=mypdf.pdf");
14.03.2012
  • имя файла=mypdf.pdf?? Мой файл не имеет имени при чтении из базы данных. Я хочу открыть содержимое в новой вкладке или новом окне с возможностью печати или сохранения при необходимости, но основная функция — отображение. 14.03.2012
  • Вы можете поставить любое имя, которое вам нравится! 14.03.2012
  • Сделал так, но все равно не работает... не знаю что происходит 15.03.2012

  • 2

    Вы должны вызвать Response.Clear(); перед установкой ContentType и т. д.

    Также попробуйте позвонить Response.AddHeader("content-disposition", "attachment; filename=test.pdf");, прежде чем звонить BinaryWrite.

    ОБНОВЛЕНИЕ – согласно комментариям:

    В зависимости от того, чего вы хотите достичь (загрузить или отобразить в браузере), вы также можете попробовать вызвать Response.AddHeader("content-disposition", "inline; filename=test.pdf"); перед вызовом BinaryWrite.

    ОБНОВЛЕНИЕ 2:

    Еще один момент, который вы должны проверить, это содержимое blobBuffer - запишите его в локальный файл и посмотрите, действительно ли это действительный PDF...

    ОБНОВЛЕНИЕ 3:

    После звонка BinaryWrite и перед звонком End попробуйте позвонить Response.Flush();.

    14.03.2012
  • вложение вызовет загрузку, я думаю, что он хочет отобразить в окне. 14.03.2012
  • имя файла=test.pdf?? Мой файл не имеет имени при чтении из базы данных. Я хочу открыть содержимое в новой вкладке или новом окне с возможностью печати или сохранения при необходимости, но основная функция — отображение. 14.03.2012
  • @D.Bermudez Я знаю, что у BLOB нет имени файла, НО большинство браузеров ожидают какое-то имя файла ... попробуйте приведенный выше код ... 14.03.2012
  • @ D.Bermudez, тогда вам нужно дать гораздо больше деталей ... как вы это тестируете? Вы проверили, что я написал в ОБНОВЛЕНИИ 2 выше? 14.03.2012
  • Да, я сделал приведенный выше код в файле UPDATES. Я тестирую это из визуальной студии... используя Chrome и IE 9. 14.03.2012
  • @D.Bermudez Я не могу вам помочь без некоторых подробностей ... приведенный выше код здесь работает абсолютно нормально ... 14.03.2012
  • Я сохраню содержимое BLOB, которое я получаю из базы данных, в физический файл, чтобы убедиться, что содержимое читается правильно. Предполагая, что файл правильный, что будет следующим шагом?? 15.03.2012
  • @D.Bermudez поместите файл в виде статического PDF-файла в какую-нибудь папку IIS, откройте его из браузера и посмотрите, что произойдет... 15.03.2012
  • Мне удалось создать физический PDF-файл из содержимого большого двоичного объекта, изменив код и сказав ему создать файл на моем рабочем столе, но когда я использую исходный код и обновленный код выше, в браузере нет отображения или загрузки. . Может ли это быть настройками в браузере? В Chrome или Internet Explorer 9?? 15.03.2012
  • @D.Bermudez это может быть настройка в браузере и/или в настройках безопасности и т. д. 15.03.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..