天天看點

form表單上傳檔案時失敗

一、前言:

表單中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;

                }

}