竹木人

----------------隐感存理,去伪存真,做个安分的守候者

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

用到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);//删除文件

 

posted on 2012-05-16 17:38  竹木人  阅读(2159)  评论(1编辑  收藏  举报