У меня есть приложение 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