2010-05-24 6 views
8

У меня есть приложение 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 не позволит это на основе по правилам безопасности.

Любая помощь или идеи будут оценены.

Спасибо.

Крис

ответ

1

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

Upload files with HTTPWebrequest (multipart/form-data)

показывает, как загрузить на стандартную страницу ASPX

Что касается получения вебсервиса подход работает, я бы сказал, что кусок головоломки вы отсутствующая здесь режим совместимости WCF ASP.

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

Посмотрите здесь http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx для получения более подробной информации о режиме совместимости с ASP.

Ваш процесс становится:

Загрузить в WebService -> добавить в кэш

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

надежды один из этих предложений помогает

если нет, возвращайся ко мне!

+0

Ваше понимание верное. Если я загружу веб-службу, логичным подходом было бы перейти на страницу, отображающую отчет после завершения загрузки данных изображения. Вы не можете использовать метод HyperlinkButton Navigation из метода обратного вызова и т. Д. Что-то делать с мерами безопасности в Silverlight. Итак, я все еще застреваю, пытаясь понять, как одним щелчком мыши загрузить данные изображения и использовать HyperlinkButton, открыть новое окно и перейти на другую страницу. – Chris

+0

K, я рассмотрю пространство имен AutomationPeers ... Это позволяет вам имитировать действие пользователя (опять же, безопасность может означать, что для кнопки гиперссылки нет средства автоматизации) ... Похоже, вам нужно будет что-то притворяться serveride, не позволяйте отчету отображаться до тех пор, пока изображение не будет полностью загружено ... Я нахожусь на работе в данный момент, и у меня нет Silverlight Dev env, но когда я вернусь домой, я дам этот снимок и позволю ты знаешь. – stevenrcfox

Смежные вопросы