(Должен ли это быть FTP? FTP имеет проблемы с брандмауэрами, режимом ASCII и, конечно, пароль в открытом виде.)
На многих языках есть библиотеки FTP, которые вы можете связать вместе с небольшим количеством UI-клея, чтобы создать собственное простое приложение для загрузки. Например, Python имеет ftplib в стандартной библиотеке. В прошлый раз, когда я делал это, был, например, в C с ftplib из Pfau, но современные языки сценариев будет намного легче писать, если вы не возражаете против накладных расходов на упаковку вашего приложения с интерпретатором.
У вас есть .NET в ваших тегах ... в стандартной библиотеке классов для .NET нет FTP, но вы, безусловно, можете свободно загружать сторонние библиотеки. С другой стороны, вы говорите кросс-платформенный, поэтому я не уверен, действительно ли вы говорите о .NET на клиенте.
Что вы можете сделать, это предоставить несколько способов загрузки, например, базовую загрузку файла HTTP *, встроенную в ваш сайт, которую каждый будет знать, как использовать, и стандартный [S?] FTP-интерфейс для опытных пользователей, которые будут быть в состоянии управлять клиентом FTP. Не то чтобы работа с FTP-клиентом действительно , что сложно: просто скажите им, чтобы они вставили URL-адрес ftp: // в проводник Windows, и большинству людей все в порядке.
*: в идеале использовать обратную связь AJAX, чтобы пользователь знал, как идет загрузка, и / или, возможно, загрузчик Flash. И не забудьте отключить / включить любые правила тайм-аута сценария на сервере, чтобы он не сдавался на полпути при загрузке. HTTP-загрузка никогда не будет оптимальной для файлов порядка 100 МБ, но вы, безусловно, можете улучшить стандартную, довольно дурацкую невосприимчивость браузеров здесь.