ASP.NET MVC3 загрузка файла не работает - PullRequest
2 голосов
/ 22 января 2011

код страницы

<% using (Html.BeginForm())
   { %>
<fieldset>
    <legend>上传项目材料</legend>
    <input  type="file" name="File1" />
    <input  type="submit" value="上传" />
</fieldset>
<%} %>

код действия

[HttpPost]
public ActionResult FileUpLoad(int id, FormCollection form)
{
    try
    {
        var model = db.ProjcetDeclare.First(c => c.id == id);

        if (Request.Files.Count==0)
        {
            return View();
        }
        string newFile=string.Empty;

        var File1 = Request.Files[0];
        if (File1.ContentLength == 0)
        {
        }
        newFile = model.Project.pname + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetFileName(File1.FileName);
        File1.SaveAs(Server.MapPath("/项目材料/" + newFile));

        model.XMCL = "/项目材料/" + newFile;
        UpdateModel(model);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}

Я пытаюсь, но Request.Files.Count == 0 верно не найти файлы, почему?

1 Ответ

17 голосов
/ 12 февраля 2011

Просто столкнулся с этим ранее на этой неделе.В вашем теге формы отсутствует атрибут HTML (enctype), чтобы сообщить серверу, что он публикует файлы.Вот решение ...

using (Html.BeginForm("Index", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...