圖片的上傳就是文件的上傳,在前台使用的是type="file"的input,但是,要將表單聲明為multipart/form-data模式,方法是在BeginForm中這樣寫:@using (Html.BeginForm("ToCreate", "Class",FormMethod.Post, new { enctype = "multipart/form-data" })),用對象的形式將enctype的類型定義成multipart/form-data。這樣,後台就可以從緩存中取得file了。看一下後台:
HttpPostedFileBase fc = Request.Files[0];
if (fc != null)
{
newClass.ClassCoverPath =FileHelper.SaveFile(fc);
}
最上面是從Request請求中提取第一個文件,然後放到HttpPostedFileBase類型的fc中,判定fc是否為空,因為有的用戶不上傳,這個時候就是空的,不執行保存操作,若是不為空,那麼將執行FileHelper.SaveFile(fc)。這個方法是一個工具類。代碼如下:
string fullname = file.FileName;
string extname = fullname.Substring(fullname.LastIndexOf(".") + 1, fullname.Length - 1 - fullname.LastIndexOf("."));
string newName = DateTime.Now.ToLongTimeString().Replace("/","").Replace(":","").Trim() + "." + extname;
file.SaveAs( Path.GetFullPath("E:/ensleep/Documents/Visual Studio 2012/Projects/AlumniBook/AlumniBook/Upload/")+newName);
return newName;
查看本欄目