0

私は ASP.NET を初めて使用するので、誰かが助けてくれれば幸いです。ビューにファイル入力があります:

 <input type="file" name="Image" id ="filename" />
 <input type="submit" value="Submit" id ="sub" />

次に、スクリプトでコントローラーのアクションに値を送信します

$(function () {
    $.post("Home/NewProject", {Image: $("#filename").val() }, function (data) {});
});

コントローラーのアクションでファイル名を取得し、プロジェクトフォルダーに保存される名前に名前を変更します~/App_Data/uploads

[HttpPost]
public ActionResult NewProject(Project model)
{
    if (ModelState.IsValid)
    {
         bool ok = false;
         ViewBag.Message = "Publish your project." ;
         //var photo = WebImage.GetImageFromRequest();
         var fileName = model.Image;

         // store the file inside ~/App_Data/uploads folder
         var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
         model.Image = path;
    }
}

しかし、実際にこのファイルをフォルダーに保存するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

1

jQuery ajax を使用してファイルをアップロードすることはできません。クライアント ブラウザが HTML5 ファイル API をサポートしている場合は、 に示すように XHR2 オブジェクトを使用してそれを実現できますthis article。そうでない場合はFine UploaderUploadifyなどのファイル アップロード プラグインを使用できますjquery.form plugin

jQuery フォーム プラグインを使用した例を次に示します。

@using (Html.BeginForm("someaction", "somecontroller", FormMethod.Post, new { id = "myForm", enctype = "multipart/form-data" }))
{
    <input type="file" name="Image" id ="filename" />
    <input type="submit" value="Submit" id ="sub" />    
}

その後:

$(function() {
    $('#myForm').ajaxForm(function() {
        alert('thanks for submitting');
    });
});
于 2013-03-01T08:39:05.163 に答える