У меня есть приложение 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 не позволит это на основе по правилам безопасности.
Любая помощь или идеи будут оценены.
Спасибо.
Крис
Ваше понимание верное. Если я загружу веб-службу, логичным подходом было бы перейти на страницу, отображающую отчет после завершения загрузки данных изображения. Вы не можете использовать метод HyperlinkButton Navigation из метода обратного вызова и т. Д. Что-то делать с мерами безопасности в Silverlight. Итак, я все еще застреваю, пытаясь понять, как одним щелчком мыши загрузить данные изображения и использовать HyperlinkButton, открыть новое окно и перейти на другую страницу. – Chris
K, я рассмотрю пространство имен AutomationPeers ... Это позволяет вам имитировать действие пользователя (опять же, безопасность может означать, что для кнопки гиперссылки нет средства автоматизации) ... Похоже, вам нужно будет что-то притворяться serveride, не позволяйте отчету отображаться до тех пор, пока изображение не будет полностью загружено ... Я нахожусь на работе в данный момент, и у меня нет Silverlight Dev env, но когда я вернусь домой, я дам этот снимок и позволю ты знаешь. – stevenrcfox