C# 實現圖片上傳
C#實現圖片上傳:
通過頁面form表單提交數據到動作方法,動作方法實現保存圖片到指定路徑,並修改其文件名為時間格式
頁面設置
這里使用的模板MVC自帶的模板視圖
<h2>上傳圖片信息</h2>
<form action="/updownImg/UpImage" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="" value="上傳" />
</form>
上傳文件表單必須加上 enctype="multipart/form-data"
否則動作方法接受不到數據
動作方法
[HttpPost]
public ActionResult UpImage(HttpPostedFileBase file)
{
//上傳圖片格式數組聲明
string[] fileter =new string[] {".jpg",".png",".jpeg" };
//保存文件路徑
string path = "/upload/image/"+ DateTime.Now.ToString("yyyyMM");
//相對程序站點路徑
path = Server.MapPath(path);
//上傳文件后綴
string fileSuffix = file.FileName.Substring(file.FileName.LastIndexOf(".")).ToLower();
//保存圖片名稱以時間格式
string fileName = DateTime.Now.ToString("yyyyMMddhhmmssms") + fileSuffix;
//判斷上傳文件是否是jpg格式,文件大小是否為小於2M
if (fileter.Contains(fileSuffix) && file.ContentLength <= 20480)
{
//判斷文件目錄是否存在,如果不存在則創建目錄
DirectoryInfo directoryInfo=new DirectoryInfo(path) ;
if (!directoryInfo.Exists)
{
directoryInfo.Create();
};
//保存圖片
file.SaveAs(path+"/"+fileName);
//返回提示保存成功!並返回到首頁
return Content("<script>alert('上傳成功');window.location.href='/home/index';</script>");
}
//如果文件沒通過驗證則提示用戶上傳文件格式不正確並返回到上傳頁
return Content("<script>alert('上傳文件格式不正確!請核對后重新上傳!');window.location.href='/UpdownImg/index';</script>");
}
此動作方法必須采用post請求,利用get則找不到
網頁出錯
總結:
此動作方法僅為一個模板,修改可實現多圖上傳及其其他文件上傳
在項目中靈活運用