Лучший способ передать изображение серверу?

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

Что я уже имею в распоряжении, следующие:

(1) Код для преобразования изображения в массив байтов (2) Код для генерации файла PDF с изображением

Основная проблема, с которой я сталкиваюсь, следующая:

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

var button = new NavigationButton();

button.NavigateUri = new Uri("http://localhost:3616/PrintReport.aspx?ReportIndex=11&ActionType=Get&ReportIdentifier=" + reportIdentifier.ToString() + "");

button.TargetName = "_blank";

button.PerformClick();

Первоначально, я передал бы изображение веб-сервису WCF (как массив байтов) и затем "перешел" бы к странице ASP.NET, которая отобразит отчет. Однако, если я делаю это, затем я не могу использовать свой пользовательский класс HyperlinkButton, и, определенные браузеры, включая Safari, заблокируют новое окно от открытия. Поэтому кажется, что единственная опция состоит в том, чтобы использовать класс HyperlinkButton.

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

Если я загружаю изображение на форму ASP.NET и затем использую класс HyperlinkButton для навигации к странице PrintReport, это не работает, поскольку приложение перешло к странице PrintReport, прежде чем система закончила загружать изображение. Я не могу передать его веб-сервису, поскольку это потребовало бы, чтобы я перешел к странице PrintReport.aspx в коде обратного вызова веб-метода, которому я передал бы изображение, и HyperlinkButton не позволит это, на основе правил безопасности.

Любая справка или идеи ценились бы.

Спасибо.

Chris

8
задан slugster 24 May 2010 в 13:07
поделиться

1 ответ

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

Загрузка файлов с помощью HTTPWebrequest (multipart / form-data)

показывает, как загружать файлы на стандартную страницу aspx

Что касается работы веб-сервиса, я бы сказал, что вам не хватает части головоломки. вот режим совместимости с WCF ASP.

Это позволяет получить доступ к httpcontext в службе wcf. Уловка, конечно же, в том, что вы связываете свою службу с ASP ....

Взгляните здесь http://blogs.msdn.com/wenlong/archive/2006/01/23/516041. aspx для получения дополнительных сведений о режиме совместимости с ASP.

Затем ваш процесс выглядит следующим образом:

Загрузить в веб-службу -> добавить в кеш

Перейти на страницу -> Получить из кеша

надеюсь, что одно из этих предложений поможет

, если нет, вернитесь ко мне!

1
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: