3

MVCを使用して添付ファイルのアップロード機能を実行しようとしています。添付ファイルのアップロード/保存を実際に実行している私のメソッドは、HttpPostedFileBaseタイプを想定しています。

public virtual string Upload(HttpPostedFileBase fileName) 
{
     //Code to upload/save attachment.
}

私の問題は、「fileName」がUIから文字列として渡されていることです。文字列(ファイルパス名)をUploadメソッドで使用できるものに変換するにはどうすればよいですか。

前もって感謝します。

4

4 に答える 4

4

他の人が述べたように、フォームは次のようになります。

<form id="form_UploadFile" action="" method="post" enctype="multipart/form-data">
  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" />
</form>

次に、ajax経由で投稿しようとしていると述べたように、jQuery serialize()を使用して、コントローラーにプッシュされるformDataをシリアル化できます。

$('#form_UploadFile').serialize();
于 2012-07-27T19:19:40.193 に答える
3

UIから文字列を渡すだけではなく、からファイルをアップロードする必要がありますinput type="file"

于 2012-07-27T19:07:06.853 に答える
2

Html.BeginForm詳細な方法を使用することを覚えていましたか?

    @using (Html.BeginForm("Attach", "File", FormMethod.Post, new { enctype = "multipart/form-data" })) {
    }

重要な部分はenctype="multipart/form-data"

于 2012-07-27T19:11:52.917 に答える
2

<form>タグを次のようにする必要があります。

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

HttpPostedFileBaseその後、適切なオブジェクトを受け取ります

詳細については、この記事を参照してください。

アップデート

ajax を使用してフォームを送信しても違いはありません。

@using (Ajax.BeginForm("YourActionName", null, new AjaxOptions { UpdateTargetId = "YourTargetId" }, new { enctype = @"multipart/form-data" }))
{
    //Your inputs here
}
于 2012-07-27T19:10:37.920 に答える