2012-01-27 16 views
1

openrastaを使ってRESTfulな方法でファイルアップロードを実装したいが、それを実装する適切な方法を見つけることができない.AjaxファイルのアップロードやIframeの使用方法はいくつかある。RESTfulなファイルアップロード方法

誰でもこれを行う方法を提案したり、私が参照できる場所からいくつかのリソースを提供することができます。事前

+0

私はこの質問のような何かを感じることはありません、何の研究もなく、またはそれは不明です。 – prashant

+0

とにかく答えが追加されましたが、stackoverflowでこれを部​​分的にカバーする回答がいくつかあります。 http://stackoverflow.com/search?q=upload+file+openrasta – SerialSeb

答えて

2

おかげであなたがHTML環境でファイルアップロードを構築しようとしている私には思えます。

2つの選択肢があります。

ファイルをアップロードするには、HTMLフォームを使用します。

<form enctype="multipart/form-data" action="/files" method="post"> 
    <fieldset> 
    <input type="file" name="filename" /> 
    <input type="submit" /> 
    </fieldset> 
</form> 

これをORで簡単にマッピングできます。あなたのハンドラは次のようになります。バイナリファイルを操作するための純粋にXMLHttpRequestで方法がないとしてあなたがプログレスバーでAjaxベースのファイルのアップロードを行うことはできません

public object Post(IFile filename) { /* do something with the file */ } 

。シーンの背後にあるフラッシュ/シルバーコントロールを使用するルートを下った場合は、前の例のようにファイルの内容を/filesに投稿するだけです。最も簡単な方法は、コンテンツをApplication-Octet-StramのContent-Typeのhttpヘッダーで、同じハンドラコードが動作します。

+0

を参照してください。実際には、Ajaxリクエストを使用して可能な認証のようなhttpヘッダーを送信したいと思います。あなたが与えた例でこれを処理できる方法はありますか。 – prashant

+1

認証は完全に無関係です、それはHTTP認証自体の役割です、ブラウザはあなたのためにそれを世話します。フラッシュやSilverlightコントロールに頼らずに何もできないことは、xmlhttprequestを使ってajaxリクエストを送信し、httpヘッダー*を追加してファイルを送信することです。それだけでは不可能です。 – SerialSeb

+1

ハンドラメソッドのパラメータとしてIFileを使用していますが、me.Openrastaが例外をスローしていました。 "パイプラインコントリビュータOpensteaを処理中に例外がスローされました。"そこでハンドラメソッドを変更しました ' public OperationResult Post(IEnumerable エンティティ) 'と同じです。http://stackoverflow.com/questions/4190537/uploading-with-multipart-form-data-using-openrasta-and-imultiparthttpentityと同じです。 – prashant

関連する問題