1. 程式人生 > WINDOWS開發 >C# 實現圖片上傳

C# 實現圖片上傳

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則找不到
網頁出錯

總結:
此動作方法僅為一個模板,修改可實現多圖上傳及其其他檔案上傳
在專案中靈活運用