在asp.net mvc 2上传Http文件

时间:2013-01-04 03:48:51

标签: asp.net asp.net-mvc http asp.net-mvc-2 file-upload

我使用http输入标签上传文件的简单http表格如下:

<% using (Html.BeginForm("Add", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
   {%>
     <label for="file"> Select File :</label>
     <input type="file" name="uploadedFile" value="" accept="text/plain" class="fileUpload" />
     <input id="btnAdd" type="submit" class="button" name="Add" value=" Add "/>
<% } %>

然后回到控制器中我有一个相应的动作:

[HttpPost]
public ActionResult Add(HttpPostedFileBase uploadedFile)
{
    Logger.Debug("Inside Add");

    ProductModel model = new ProductModel();

    if (uploadedFile.ContentLength > 0)
    {
        string filePath = Path.Combine(HttpContext.Server.MapPath("~/Uploads"),
                                       Path.GetFileName(uploadedFile.FileName));
        Logger.Debug("File saved at - " + filePath);
        uploadedFile.SaveAs(filePath);
        model.FileName = uploadedFile.FileName;
        model.Add(filePath);
        return View("Result", model);
    }
    return RedirectToAction("Index");
}

在我的开发机器和实验室服务器上,这非常有效。但在生产中它甚至没有发送任何提交按钮的请求。我通过提琴手检查了请求,它没有显示任何请求甚至源于此表单的痕迹,来自win 8 win 2 r2生产服务器上的IE 8。

我在这里很无能为力。可能是什么问题?您认为IE安全权限,UAC,组策略可能是个问题吗?或者你还有别的话要说。

1 个答案:

答案 0 :(得分:0)

尝试在视图中将文件输入的名称从uploadFile更改为UploadedFile

<% using (Html.BeginForm("Add", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
   {%>
     <label for="file"> Select File :</label>
     <input type="file" name="UploadedFile" value="" accept="text/plain" class="fileUpload" />
     <input id="btnAdd" type="submit" class="button" name="Add" value=" Add "/>
<% } %>