2009-07-14 1 views
3

私はSilverlightアプリケーションを通してサーバーにファイルをftpしようとしています。ファイルをサーバーファイルシステムにアップロードする場所が、Webサーバーのサンドボックス領域外に存在する場所。この場合、Webサーバーのルートは "C:\ test \ www \"にあり、ファイルをアップロードする場所は "C:\ User \ Uploads"になります。このscenerioでは、Http POSTが動作するかどうかはわかりません(Webサーバールートを使用していません)。ユーザーが選択したファイルをサンドボックス外の別の場所にアップロードするだけで済みます。 Silverlightで私はソケットが4502-4532である銀色のための限られたポート範囲に基づく私の最後の選択肢だと思っています。 WebClientとHttp POSTを使用してこれを行うことはできますか?私はsilverlightまたはjavascriptを使ってftp接続を作成できますか?Silverlight Ftp Upload

+0

サーバーテクノロジを指定していません。 – AnthonyWJones

+0

このためのサーバー技術は、Apache 2.2を使用しています。 – Curtis

+0

元の質問を明確にすることを検討できますか?たとえば、FTPアップロード自体はSilverlightではサポートされていませんが、ファイルのアップロードという概念は、HTTPデータストリームを通じて行われます。これがすべて同じマシンにあるのかどうかもわかりません。 –

答えて

2

これは、同じマシン(クライアントとサーバーの両方)ですべてを実行しているように思えるので、これは面白いシナリオです。私はあいまいなオリジナルの質問に答えており、これに完全に答えるのに役立つ追加データが大好きです。

FTPアップロード自体はSilverlightではサポートされていませんが、ファイルをアップロードするという概念は、HTTPデータストリームを通じて行われます。

クライアントマシンからサーバーにHTTPアップロードを実行する場合Silverlight 2および3でOpenFileDialog controlを使用してそのデータを読み取り、WebClientを使用してアップロードできます。

Webサーバーがクライアントマシンに送信できるものからダウンロードしたい場合は、SaveFileDialog controlというSilverlight 3以降を使用する必要があります。

すべてのSilverlightファイルダイアログでは、ユーザーが操作して機能するために、セキュリティ上の目的でファイル名を選択する必要があります。

希望すると便利です。

0

あなたのサーバーがASP.NETベースであると仮定して、単純なWebClient POSTを.ashxハンドラに使用します。ハンドラに投稿の本文を「C:\ User \ Uploads」のファイルに書き込ませます。

+0

サーバはApache 2.2です。あなたの提案はasp.netで動作しますが、asp.netを使って別の方法があるのだろうかと疑問に思っています – Curtis

0

silverlightアプリケーションと同じホストにftpサーバーがある限り、ソケットを使用して独自のftpクライアントをコードすることができますが、それほど難しくなく、多くの例があります。

+2

Silverlightにはソケットサポートが含まれています。 Silverlight 3を使用する場合、ソケットのポート範囲は4502〜4534と制限されていました。この範囲は、私が実装していた全体的な設計にはあまりにも限界がありました。 – Curtis

0

その間に、Silverlight 5と名前をつけて、ソケットにアップデートがあります。ClientAccessPolicy.xmlでポート範囲が拡張され、ブラウザ内の昇格トラストモードが利用可能です。

したがって、rudimental Ftpを有効にするためにsharpLightFtpを作成しました。