初学Image和Fileupload控件

来源:互联网 发布:数据库管理系统简称 编辑:程序博客网 时间:2024/05/22 13:04

Fileupload控件可以将客户端的文件上传到服务器,而image控件则可以对图像进行一步控制;先前对label, Button控件已经有了一些了解:

 

学习步骤如下:

1.先在Web窗体上依次拖上Image1,Label1,Label2,FileUpload1,Button1,Label3,Button2

控件学习

2.功能说明:

    在网页上点击浏览按钮,在本地选择一个图片文件,点上传后将此文件上传到程序指定的目录中,并将其显示出来,包括图片,文件名,大小,类型.

3.效果

效果图

4.源代码是从msdn里面找了个例子,修改修改差不多就明白了

 

    protected void Button2_Click(object sender, EventArgs e)
    {
        if (IsPostBack)//如果要给客户端回应
        {
            Boolean fileOK = false;//文件类型初始化,一开始不知道要上传文件是什么类型的,自然不OK,看下面
            String path = Server.MapPath("~/UploadedImages/");//得到图片保存的绝对路径
            //注意这里uploadedimages是事先已经在解决方案资源管理器中建立好的
            //提示:在根目录下右击就会出现新建文件夹
           
            if (FileUpload1.HasFile)//上传前先检查文件是否存在,这是HasFile的功能
            {
                String fileExtension =
                    System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//得到要保存图片的扩展名并转成小写
                String[] allowedExtensions =
                { ".gif", ".png", ".jpeg", ".jpg" };//注意,扩展名是以.开头
                for (int i = 0; i < allowedExtensions.Length; i++)//列举字符串数组
                {
                    if (fileExtension == allowedExtensions[i])
                    {
                        fileOK = true;
                    }
                }
            }

            if (fileOK)//中文意思就是 如果(文件类型OK)
            {
                try//不太明白为什么这里用try,直接用if..else不是很简单?研究中
                {
                    string size = FileUpload1.PostedFile.ContentLength.ToString();//得到上传文件的大小并转换成字符
                    string type = FileUpload1.PostedFile.ContentType;//得到上传文件MIME类型
                    FileUpload1.PostedFile.SaveAs(path+ FileUpload1.FileName);//保存上传的文件,使用绝对路径
                    Label1.Text = " 文件上传成功"+"<br>"+size+"<br>"+type;
                    //显示上传文件的大小和类型

                    Label2.Text = FileUpload1.FileName;
                    //
                    //显示一下上传到server后的文件名,注意,不包含路径
                    //
                    image1.ImageUrl = "uploadedimages//" + FileUpload1.FileName;//显示上面上传的图片
                }
                catch (Exception ex)
                {
                    Label1.Text = "文件无法上传.";
                }
            }
            else
            {
                Label1.Text = "无法接受这个类型或文件不存在.";
            }
        }

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //对ImageUrl的一些研究
        image1.ImageUrl = "uploadedimages//" + FileUpload1.FileName; //本意是要显示上面上传的图片,但是..
         Label3.Text= FileUpload1.FileName;
       //值为空,说明FileUpload1已经被释放,对局部变量又多了些了解

        //如果你用物理路径,那么image控件无法显示,因为后面的参数imageUrl只认识http
    
    }

原创粉丝点击