為自己的項目添加一個簡單的用戶頭像是不是顯得很有趣啊
運行效果
完成起來其實也很簡單
先給服務器添加一個 pic 文件夾用來存放圖片
一.前端設計
1.需要一個上傳文件的控件FileUpload
2.一個上傳按鈕Button
3.一個圖片按鈕ImageButton
4.一個容器Panel(包含2和3)
先隱藏容器.直到圖片點擊事件被觸發才顯示。
二.后台設計
1.上傳文件事件
需要限制格式以及大小
當然圖片的命名重復這里沒有考慮(用時間加原名在一定程度上可以解決)
protected void btnupload_Click(object sender, EventArgs e) { Boolean fileOk = false; //指定文件路徑,pic是項目下的一個文件夾;~表示當前網頁所在的文件夾 String path = Server.MapPath("~/pic/");//物理文件路徑 int length = this.FileUpload1.PostedFile.ContentLength;//獲取圖片大小,以字節為單位 if (length > 6000) { Response.Write("<script language='javascript'>alert('您選擇的圖片過大!');</script>"); } else { //文件上傳控件中如果已經包含文件 if (FileUpload1.HasFile) { //得到文件的后綴 String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); //允許文件的后綴 String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg", ".bmp" }; //看包含的文件是否是被允許的文件的后綴 for (int i = 0; i < allowedExtensions.Length; i++) { if (fileExtension == allowedExtensions[i]) { fileOk = true; } } } if (fileOk) { try { //文件另存在服務器的指定目錄下 string name = FileUpload1.FileName;//獲取上傳的文件名 path = "~/pic/" + name; DataCom.comdata("update **** set 路徑='" + path + "' where 用戶名='" +txtnae.Text + "'");//保存文件路徑數據到數據庫 Image1.ImageUrl = path; FileUpload1.SaveAs(System.Web.HttpContext.Current.Server.MapPath(path)); Response.Write("<script>alert('文件上傳成功!');</script>"); } catch { Response.Write("<script>alert('文件上傳失敗!');</script>"); } } else { Response.Write("<script>alert('只能上傳gif,png,jpeg,jpg,bmp圖象文件!');</script>"); } } }
運行效果
三.把圖片的路徑和名稱保存到數據庫中
把圖片保存在服務器上
如果服務器上的圖片出現命名重復,可能會造成圖片丟失
四.最好把該頭像放在用戶控件當中。
可以大大的減少代碼