(FTP である必要がありますか? FTP はファイアウォール、ASCII モードで問題があり、もちろんパスワードは平文です。)
多くの言語には FTP ライブラリが用意されており、少量の UI 接着剤と組み合わせて、独自のシンプルなアップローダ アプリを作成できます。たとえば、Python には標準ライブラリに ftplib があります。前回これを行ったのは、たとえば Pfau の ftplib を使用した C でしたが、アプリをインタープリターでパッケージ化するオーバーヘッドを気にしないのであれば、最新のスクリプト言語ははるかに簡単に記述できます。
タグに .NET があります... .NET の標準クラス ライブラリに FTP はありませんが、サード パーティのライブラリを自由にダウンロードできます。一方、あなたはクロスプラットフォームと言っているので、本当にクライアント上の .NET について話しているのかどうかはわかりません。
あなたができることは、アップロードの複数の手段を提供することです。たとえば、サイトに組み込まれた基本的な HTTP* ファイルのアップロード (誰もが使用方法を知っている) と、上級ユーザー向けの標準の [S?]FTP インターフェースなどです。 FTP クライアントを操作します。FTP クライアントの操作はそれほど難しいわけではありません。ftp :// URL を Windows エクスプローラーに貼り付けるように指示するだけで、ほとんどの人は問題なく使用できるはずです。
*: AJAX フィードバックを使用してアップロードの進行状況をユーザーに知らせるのが理想的です。また、Flash アップローダーを使用することもできます。また、アップロードの途中で中断しないように、サーバーのスクリプト タイムアウト ルールを無効または有効にすることを忘れないでください。HTTP アップロードは 100MB 程度のファイルには決して最適ではありませんが、ブラウザのデフォルトのかなりひどい無応答性を確実に改善することができます。