Получение содержимого с изображениями в элементе управления веб-браузера без временных файлов

Для клиент-серверного приложения я хотел бы отображать контент с помощью элемента управления веб-браузера с изображениями без записи временных файлов на диск.

Я пробовал использовать файлы mht через поток документов и текст документа, но элемент управления в веб-браузере недостаточно умен, чтобы распознавать файлы mht.

Я бы использовал изображения URI данных, однако на большинстве компьютеров он будет установлен на IE6 или 7.

Есть ли другие варианты для этого?


person Revision17    schedule 11.03.2010    source источник
comment
Вы хотите отображать веб-сайт без сохранения временных копий изображений? Или вы хотите отображать сгенерированные страницы, содержащие изображения, без записи временных файлов? Возможно я неправильно понял ...   -  person NickAldwin    schedule 12.03.2010


Ответы (3)


Я не уверен, что это вообще поможет, но, возможно, вы могли бы попробовать использовать другой элемент управления браузера, например WebKit .NET.?

Таким образом, вы можете быть уверены в его функциях (mht, URI данных и т. Д.)

Я знаю, насколько проблематичным может быть компонент веб-браузера Microsoft.

person NickAldwin    schedule 11.03.2010
comment
Похоже, что зависимости для Webkit.NET составляют 11 МБ, и это не версия 1.0 или выше, поэтому я не думаю, что смогу ее использовать. После дополнительного поиска в Google я не уверен, что для этого есть подходящее решение. Я думаю, что мне, возможно, придется отказаться от изображений и придерживаться DXImageTransforms для макета. Некоторые значки были бы хороши ... но они не вписываются в структуру как таковую. - person Revision17; 12.03.2010
comment
Хм, это прискорбно. Я знаю, что на страницах, обслуживаемых веб-браузером моей компании, используются изображения с нашего веб-сайта (поэтому на диске нет файлов). Может, ты мог бы сделать что-нибудь подобное? - person NickAldwin; 13.03.2010
comment
И как можно было бы передать ресурсы webkit control image / css / js без временных файлов? - person grega g; 06.05.2010
comment
Я просто предположил, что он поддерживает mht или URI данных. - person NickAldwin; 06.05.2010

Загрузите веб-сайт, но добавьте заголовок no-cache. Примерно так:

WebBrowser web = new WebBrowser();
web.Navigate("http://yourURL.com", string.Empty, null, "Pragma: no-cache");
person Kyle Rosendo    schedule 11.03.2010

Вы можете зарегистрировать свой собственный протокол для изображений

Если вы хотите пройти маршрут MHTML, вам необходимо самостоятельно вызвать IPersistStreamInit / IPersistMoniker документа. Если я правильно помню, элемент управления WinForm WebBrowser предполагает, что входной поток является UTF-8, и не предоставляет реализацию IMoniker, позволяющую указать базовый URL-адрес документа.

Обратите внимание, что существуют некоторые ограничения на поддержку MHTML IE, например, поддерживаются не все протоколы, ограничения сайтов на вложения MHTML, отсутствие поддержки MHTML на мобильных телефонах и ранних версиях Windows для ПК без Outlooks Express или Word и т. Д.

person Sheng Jiang 蒋晟    schedule 15.03.2010