页面代码
<% using (Html.BeginForm())
{ %>
<fieldset>
<legend>上传项目材料</legend>
<input type="file" name="File1" />
<input type="submit" value="上传" />
</fieldset>
<%} %>
Action 代码
[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 是真的 找不到文件 为什么?
最佳答案
本周早些时候刚遇到这个问题。您的表单标记缺少 HTML 属性 (enctype) 来告诉服务器它正在发布文件。这是解决方案...
using (Html.BeginForm("Index", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
关于ASP.NET MVC3 文件上传不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766281/