0

.txtファイルをアップロードしてその内容を読み込もうとしています。私はIFormFileを使っています。私のコントローラはファイルのアップロードは常にnullです。オブジェクトのインスタンスにエラーオブジェクトリファレンスが設定されていません。

public IHttpActionResult PostCellInfo(IFormFile file) 
{ 

    using (var reader = new StreamReader(file.OpenReadStream())) 
    { 

     var fileContent = reader.ReadToEnd(); 
    } 
} 

のように、基本的には、インデックスの私のフォームは

<form name="upload" method="post" enctype="multipart/form-data" action="api/CellInfoes"> 
     <div> 
      <input name="file" type="file" /> 
      <input type="submit" value="upload" /> 
     </div> 
    </form> 

ですが、エラーがまだ「ExceptionMessage」

を言う: " のインスタンスに設定されていないオブジェクト参照オブジェクト。

「ファイル」は常にnullだと思います。なぜどんなアイデア?

名前が一致する必要がありますが、これは私のコードでは問題ないと思います。

+1

フォームアクション属性で正しいアクションメソッドを使用していることを確認してください。アクションメソッドのパラメータを 'HttpPostedFileBase'型に変更します。あなたのポストアクションに[HttpPost]属性を追加してください。 –

答えて

0

パラメータはIList<IFormFile> filesである必要があります。

public IHttpActionResult PostCellInfo(IList<IFormFile> files) 
{ 
    foreach (var file in files) { 
     if (file.Length > 0) { 
      using (var reader = new StreamReader(file.OpenReadStream())) 
      { 
       var fileContent = reader.ReadToEnd(); 
      } 
     } 
    } 
} 

もビューのname属性を変更します。

<form name="upload" method="post" enctype="multipart/form-data" action="api/CellInfoes"> 
     <div> 
      <input name="files" type="file" /> 
      <input type="submit" value="upload" /> 
     </div> 
    </form> 

私はこれをテストしていませんが、それは正しい方向にあなたを指している必要があります。 IFormFileをコレクションなしで使用する場合は、これをチェックする必要がありますpost

+0

お返事ありがとうございました。 Unfortunatelly、何も変わっていない、POSTリクエストを送信した後のデバッグ中に、まだ "files = null"と表示されます。 – odinas1212

関連する問題