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 Uploader如果没有,您可以使用一些文件上传插件,例如Uploadifyjquery.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 回答