0

在我的项目中,我需要上传一个文本文件。我们正在使用 MVC4 - Razr。我想使用 AJAX/Jquery/Javascript 文件上传,因为它不会发回表单。这是我的代码。它实际上是在上传文件,但之后它重定向到报告\上传文件将值 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);
        }
4

1 回答 1

1

我认为最简单的方法是使用jQuery Form Plugin。这样你可以ajaxify文件上传如下:

<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

于 2013-05-11T13:16:19.827 回答