2017-01-16 2 views
3

私は最近、私の大学でプロジェクトのためにF#とSuaveでウェブサイトを作成し始めました。私が必要とするものの1つは、ユーザーがウェブサイトからファイルをアップロードして解析することです。Suaveアプリケーションでファイルをアップロード

は、私が今持っていることは、私は簡単なフォームを持っている私のHTMLで

let post = 
    let ``process`` httpRequest = 
     use reader = File.OpenText httpRequest.files.Head.tempFilePath 
     // do parsing and save to database 
    request ``process`` 

ある

<form action="/parse" method="POST"> 
    <div> 
     <input type="file" name="file"> 
    </div> 
    <div> 
     <button>Send</button> 
    </div> 
</form> 

そして、私は次の例外を取得しpost方法を経由してPOSTリクエストの処理中に

[22:45:30 ERR] request failed 
System.InvalidOperationException: The input list was empty. 
    at Microsoft.FSharp.Collections.FSharpList`1[T].get_Head() <0x41494340 + 0x0007b> in <filename unknown>:0 
    at [email protected] (Suave.HttpRequest httpRequest) <0x41493e10 + 0x0003b> in <filename unknown>:0 
    at Microsoft.FSharp.Core.FSharpFunc`2[T,TResult].InvokeFast[V] (Microsoft.FSharp.Core.FSharpFunc`2 func, Microsoft.FSharp.Core.T arg1, Microsoft.FSharp.Core.TResult arg2) <0x4143c6a0 + 0x00099> in <filename unknown>:0 
    at [email protected] (Suave.HttpContext context) <0x41493dc0 + 0x0002f> in <filename unknown>:0 
    at [email protected][a,b].Invoke (Microsoft.FSharp.Core.FSharpOption`1 _arg1) <0x41472a10 + 0x00044> in <filename unknown>:0 
    at [email protected][a,b].Invoke (a a) <0x41435c60 + 0x000af> in <filename unknown>:0 

つまり、にファイルが存在しませんリスト。

アップロードされたファイルへのアクセス方法やアップロードされた情報が見つかりませんでした。ブラウザでFiddlerで送信されたHTTPリクエストの内容を確認しましたが、私が見ることができるのは

file=myFile.txt 

アップロードされているファイルはありますか?正しくアクセスしていますか?

注:私は[OK]を、私は欠けていたものを見つけサーブ2.0.0

+1

? –

+0

@FyodorSoikinあなたが何を意味するか分かりません。このページには ''があります。 –

答えて

4

を使用しています。ファイルを投稿するフォームは、ファイルの内容がContentセクションのHTTPリクエストと一緒に送られる途中、この

<form action="/parse" method="POST" enctype="multipart/form-data"> 

のような追加のパラメータを持っている必要があります。

https://searchcode.com/codesearch/view/7502482/によって見つけられる)

関連する問題