一、前言:
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据
二、前台代码
@using (Html.BeginForm("QuestionAdd", "Manage", FormMethod.Post, new { @id="form1",enctype = "multipart/form-data" }))
{
<input name="questionFile" id="questionFile" type="file" οnchange="UploadQuestionFile(this)" />
<input type='submit' value='提交' />
}
三、后台代码
public ActionResult QuestionAdd(HttpPostedFileBase questionFile)
{
if (questionFile.HasFile())
{
string pathRrelative = @"/UploadFile/";//相对路径
string pathAbsolute = Server.MapPath(@"~\UploadFile\");//绝对路径
if (!Directory.Exists(pathAbsolute))
{
Directory.CreateDirectory(pathAbsolute); //新建文件夹
}
string fileName = string.Empty;
fileName = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(questionFile.FileName);
questionFile.SaveAs(pathAbsolute + fileName);
return pathRrelative+fileName;
}
}