一、前言:
表單中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;
}
}