Могу ли я записать файл на ПК клиента, используя Silverlight - PullRequest
10 голосов
/ 16 апреля 2009

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

Могу ли я сделать это с помощью Silverlight? и как?

Если это невозможно, есть другой способ сделать это? Есть предложения?

Спасибо

Редактировать: Как показано для Брайана Дженисио, я могу попросить разрешения пользователя сохранить файл, поэтому я считаю, что диалоги открытия и сохранения подходят для моего случая. Но в случае, если этого недостаточно, есть ли способ, с или без взаимодействия с пользователем, сохранить файл вне изолированного хранилища, например, эмулировать новую загрузку для пользователя?

Ответы [ 5 ]

8 голосов
/ 16 апреля 2009

В Silverlight 3.0 у вас будет доступ для чтения и записи файлов через OpenFileDialog . В Silverlight 2.0 у вас есть доступ к изолированному Sotrage, который позволит вам сохранить в песочнице. Вы, вероятно, никогда не будете иметь полный доступ к файловой системе без разрешения пользователя.

3 голосов
/ 16 апреля 2009

Вы не можете сделать это по соображениям безопасности:

Приложения на основе Silverlight не использовать файловую систему операционной система и ограничены в использовании изолированное хранилище для сохранения и доступа файлы, поэтому это пространство имен [System.IO] не предоставить любую дополнительную функциональность. Для получения дополнительной информации о том, как Использование приложений на основе Silverlight изолированное хранилище, см. изолированное хранилище .

Если возможно, вы можете сместить его так, чтобы сервер выполнял кодирование, а файл был доступен для загрузки традиционным способом.

Если вы кодируете для обеспечения конфиденциальности / безопасности, рассмотрите возможность загрузки только по безопасному протоколу (HTTPS с использованием SSL).

3 голосов
/ 16 апреля 2009

Вы можете использовать IsolatedStorageFile Класс для этого, используя silverlight.

Другая ссылка: Как читать и записывать файлы в изолированном хранилище?

0 голосов
/ 12 августа 2010

С Silverlight 4 вы можете сделать это примитивным способом, используя AutomationFactory для автоматизации FileSystemObject.

см .: http://justinangel.net/CuttingEdgeSilverlight4ComFeatures#BlogPost=CuttingEdgeSilverlight4ComFeat

0 голосов
/ 17 апреля 2009

Другим вариантом (не элегантным, но работающим) может быть выполнение пинг-понга с использованием сервисов:

  • Получить файл с сервера.
  • Выполните необходимое кодирование / преобразование на стороне клиента.
  • Отправьте его снова на сервер с помощью службы WCF, сохраните в сеансе.
  • Вызовите метод javascript из SL, который сделает запрос к пользовательскому обработчику HTTP.
  • Этот пользовательский HTTP-обработчик будет возвращать файл, который находился в сеансе, как вложение (в первый раз, когда появится неприятная панель из IE ... вы собираетесь что-то скачать ...).

Мой случай немного проще, в моем приложении мне нужно было экспортировать диаграмму БД в JPEG, а также выполнить экспорт в отчет HTML, я использовал этот подход (ping pong:)).

Если вы хотите взглянуть:

http://www.dbschemaeditor.com

НТН Braulio

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...