MVC中的AJAX上传文件

时间:2013-05-10 22:26:42

标签: asp.net-mvc jquery

在我的项目中,我需要上传文本文件。 我们正在使用MVC4 - Razr。 我想使用AJAX / Jquery / Javascript文件上传,因为它不会回发到表单。 这是我的代码。它实际上传文件,但之后重定向 报告\ uploadfile将值为true。 有没有更好的方法来做到这一点。

这是我的代码 @@@@@@@@@

 @using (Html.BeginForm("uploadfile", "reports", FormMethod.Post, new {enctype = enter code here`"multipart/form-data"}))
{
    <input type="file" name="FileUpload1" /><br/>
    <input type="submit" name ="Submit" id="Uploadfile" value="Upload"/>
}

- 控制器代码

[HttpPost]
        public JsonResult UploadReports()
        {
            if (Request.Files[0].ContentLength > 0)
            {
                string uploadPath = "C:\\Upload";               
                string filename = Path.GetFileName(Request.Files[0].FileName);
                Request.Files[0].SaveAs(Path.Combine(uploadPath, filename));

            }
            return Json(true);
        }

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用jQuery Form Plugin。通过这种方式,您可以按如下方式调整文件上传:

<script type="text/javascript">
     $(function () {
          $('#myForm').ajaxForm({
          });
     });
</script>

@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { @id = "myForm", enctype = "multipart/form-data" }))
{
     <input type="file" name="FileUpload1" /><br />
     <input type="submit" name="Submit" id="Uploadfile" value="Upload" />
}

在公开UploadReports方法中,您可以接受FileUpload1参数:List<HttpPostedFileBase> FileUpload1