Приложение для динамической загрузки файлов Silverlight - PullRequest
1 голос
/ 28 марта 2012

Я хотел бы создать приложение Silverlight 4 (или 5), которое может выполнять групповую / пакетную загрузку файлов с веб-сервера хостинга. На клиенте пользователю будет представлен список файлов, из которых он выбирает один или несколько из них для загрузки. С этого момента я пытаюсь понять, как это будет работать. Я бы хотел избегать подсказок пользователю несколько раз (например, один раз для каждого файла). Должна быть только одна подсказка «сохранить как», и оттуда загрузка должна быть выполнена.

Вот мои первые мысли:

(1) Сохранить файл в клиенте

Если бы пользователь мог выбрать «папку для перетаскивания», в которую будут загружаться файлы, запись их на диск может быть не слишком сложной. Тем не менее, я не знаю ни одного способа сделать это в Silverlight. Изолированное хранилище было первым, что пришло мне в голову, но пользователю будет нелегко добраться до этого места после того, как файлы будут записаны ... Насколько я знаю, есть только SaveFileDialog, и я, конечно, не хочу запрашивать у пользователя местоположение и имя каждого файла.

(2) Загрузка файла с сервера

Если бы мы могли каким-то образом использовать встроенные в браузер возможности загрузки (сохранения / открытия), это было бы простым вариантом. Я нашел несколько основных статей, демонстрирующих, как это сделать, но я думаю, что наш сценарий усложняется, потому что есть несколько файлов, и файлы, которые пользователь выбирает для загрузки в пакете, являются динамическими. По-моему, я думаю о том, чтобы создать какой-нибудь zip / архив «на лету», содержащий файлы, которые пользователь выбирает для загрузки, а затем загружает zip в виде одного файла.

Есть какие-нибудь мысли или предложения о том, как что-то подобное может быть реализовано? Я уверен, что это возможно, но для меня это просто новая территория.

Спасибо!

1 Ответ

1 голос
/ 28 марта 2012

Ну, как вы сделали большую часть исследования.Silverlight должен будет запрашивать (SaveDialog) всякий раз, когда вы хотите загрузить какие-либо данные на клиентский компьютер, поскольку приложения silverlight запускаются в изолированной программной среде, что означает, что вы не можете получить доступ к любому локальному файлу и папке без диалогового окна.

iдумаю, что решение подходит лучше всего, когда вы загружаете файл в Silverlight, попробуйте сохранить их все в памяти, затем используйте SharpZipLib для Silverlight и попробуйте сжать файлы на лету.

http://liviutrifoi.wordpress.com/2011/03/22/silverlight-create-zip-file-with-folder/

С уважением.

...