Большой файл (30 Мб +) Загрузка через Интернет, какие варианты лучше? - PullRequest
9 голосов
/ 22 мая 2009

Мы с другом обсуждали, как лучше всего отправить большой файл через Интернет. FTP, отдельные веб-службы, блокирование байтов в несколько веб-служб, HTTP File Post (сообщение из нескольких частей), интерфейс RIA (SilverLight или Flash)

Есть ли ответы / решения, которые отсутствуют?

Позвольте мне рассказать вам больше о моей конкретной ситуации.

У меня есть «клиентское» приложение Windows Form Windows .NET 2.0, которое взаимодействует веб-службами с приложением ASP.NET. В клиентском приложении мне нужна возможность загрузить большой файл и сообщить пользователю о статусе загрузки. Я работал с одним веб-сервисом, но обнаружил, что размер файла в Интернете проблематичен, поэтому создал несколько веб-сервисов для разделения массива байтов. Теперь желаю рассмотреть другие варианты.

Некоторые исследования сделаны ...

Загрузка файла SilverLight www.codeplex.com/SilverlightFileUpld

Загрузка файла ASP.NET www.brettle.com/neatupload

FTP в .NET Framework www.windowsdevcenter.com/pub/a/windows/2006/12/12/building-ftp-services-using-net-20.html

Желая мнения других. Спасибо.

Ответы [ 3 ]

5 голосов
/ 22 мая 2009

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

0 голосов
/ 27 мая 2009

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

Мне нравится больше всего Solmetra Flash Uploader , онлайн-демонстрация выглядит впечатляюще, вы также можете установить нулевую ширину и высоту и написать сценарий в Javascript. *

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

Даже Gmail использует Flash для загрузки вложений .

0 голосов
/ 23 мая 2009

Я сам неравнодушен к варианту Flash / Silverlight (обычно Silverlight, так как он прекрасно интегрируется с .NET.) Оба варианта обеспечивают стабильный и быстрый механизм загрузки файлов, который не вешает страницу, над которой вы работаете, позволяя пользователь может выполнять другие задачи во время загрузки (при условии, что эти задачи не переносят их на другую страницу).

Действительно отличный пример сервиса загрузки на основе Flash, который позволяет одновременно загружать несколько файлов, находится на странице отклонений загрузки DeviantArt.com. Вы можете выбрать файл для загрузки, который затем будет передан в фоновом режиме любым способом, который работает для вашего браузера (в некоторых случаях, я думаю, что создается скрытый iframe, который отправляет запрос файла, если Flash недоступен), и вы получаете значок файла с индикатором асинхронного хода выполнения для каждого загружаемого файла.

Одним из дополнительных преимуществ Flash / Silverlight является то, что вы можете взаимодействовать с файлом на стороне клиента перед его отправкой, что позволяет выполнять такие действия, как проверка того, что данные не являются вредоносными программами, сценариями и т. Д. Это может быть очень сложно или невозможно с классической загрузкой файлов и javascript из-за ограничений разрешений, которые обычно присутствуют в веб-браузерах в эти дни (по уважительной причине.)

Я бы сказал, что для вашего приложения Silverlight будет лучшим вариантом для взаимодействия с вашими веб-сервисами (я предполагаю, что классические сервисы ASMX, но если они WCF, Silverlight также имеет отличную поддержку WCF).

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