2016-09-23 4 views
0

私のMVC controllerには非常に簡単なファイルアップロード方法があり、私のPCのブラウザーから画像をアップロードするときに非常にうまくいきます。iOSからMVCコントローラーにファイルをアップロードする

アップロードコード:

[HttpPost] 
public ActionResult FileUpload(HttpPostedFileBase file, string encodedId) 

私は私のiPhoneから画像をアップロードしようとした場合、ルートテーブル内

Noルートが与えられた値

と一致するようしかし、私はエラーを取得します

私はメソッドからパラメータを削除して、代わりにデータにアクセスしようとしましたRequestオブジェクト:

修正コード:

[HttpPost] 
public ActionResult FileUpload() 
    { 
    var file = HttpContext.Request.Files[0]; 
    string encodedId = HttpContext.Request.Form["EncodedId"]; 

これは、同じエラーになります。

iPhoneには開発ツールがありませんので、iPhoneがサーバーに送信している内容を確認できません。

+0

iPhoneコードを開発した人にあなたに伝えることはできませんか? iOSから.Netにファイルをアップロードするために過去に行ったことは、画像をBas64文字列として送信しますが、.Net側のバイト配列として定義します。 – Flexicoder

+0

こんにちはFlexicoder。申し訳ありませんが、画像がiOS Safariブラウザからアップロードされているはずです。 – Steve

答えて

0

ファイルとして送信しているファイルの名前を次のコードで取得します。

[HttpPost] 
     [Route("UploadAttachment")] 
     public IHttpActionResult UploadAttachment() 
     { 
      try 
      { 
       HttpPostedFile File = HttpContext.Current.Request.Files.Count > 0 ? 
        HttpContext.Current.Request.Files.Get("File") : null; 

       if (File != null) 
       { 
        Uploader uploader = new Uploader(); 
        var Result = uploader.uploadToServer(File); 
        return Ok(Result); 
       } 
       else 
       { 
        return BadRequest("File is Required"); 
       } 
      } 
      catch (Exception ex) 
      { 
       return InternalServerError(ex); 
      } 
     } 
+0

こんにちはZain、私の問題は必ずしもメソッドの実装ではありません。ルーティングの問題が原因でトリガーする方法が得られないということです。 – Steve

+0

コードを表示できますか? –

関連する問題