用到FileLoad控件:
<asp:FileUpload ID="FileUpload1" runat="server" Width="217px" />//FileLoad控件
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="上传" />上传按钮
后台代码:
protected void Button1_Click(object sender, EventArgs e) { try { if (FileUpload1.PostedFile.FileName == "") { alert("请选择文件!"); } else { string filepath = FileUpload1.PostedFile.FileName; //if (!IsAllowedExtension(FileUpload1)) //{ // this.lb_info.Text = "上传文件格式不正确!"; //} if (IsAllowedExtension(FileUpload1) == true) { string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1); filename = Session["StuID"].ToString()+".jpg"; string serverpath = Server.MapPath("~/examer_images/") + filename; FileUpload1.PostedFile.SaveAs(serverpath); if (isProperSize(serverpath)) { alert("图像上传成功!"); } } else { alert("请上传图片!"); } } } catch (Exception ex) { alert("上传发生错误!原因:" + ex.ToString()); } }
判断文件是否为图像文件:
private bool IsAllowedExtension(FileUpload upfile) { string strOldFilePath = ""; string strExtension = ""; string[] arrExtension = { ".gif", ".jpg", ".bmp", ".png" }; if (upfile.PostedFile.FileName != string.Empty) { strOldFilePath = upfile.PostedFile.FileName;//获得文件的完整路径名 strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));//获得文件的扩展名,如:.jpg for (int i = 0; i < arrExtension.Length; i++) { if (strExtension.Equals(arrExtension[i])) { return true; } } } return false; }
判断图像是否符合规格:
private bool isProperSize(string filename) { System.Drawing.Image image2 = System.Drawing.Image.FromFile(filename); if ((image2.Width > 441) && (image2.Height > 358)) { image2.Dispose(); Response.Write("<script language='javascript'>alert('宽度和高度大于520*520px!')</script>"); System.IO.File.Delete(filename);//删除文件 return false; } else return true; }
总结:
获取所选择的图像名称:string filepath = FileUpload1.PostedFile.FileName;
获取所要上传的目录名称:string serverpath = Server.MapPath("~/examer_images/") + filename;//本程序文件夹上一级目录
Server获取路径规则如下:
1、Server.MapPath("/")
注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath("./")
注:获得所在页面的当前目录,等价于Server.MapPath("")。
3、Server.MapPath("../")
注:获得所在页面的上级目录。
4、Server.MapPath("~/")
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。
eg:
string filename=Server.MapPath("./") + @"\Web.config";
string filename=Server.MapPath("./") + "/Web.config";
string filename=Server.MapPath("") + @"\Web.config"
System.IO.File.Delete(filename);//删除文件