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 = " 文件上传成功"+"
"+size+"
"+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
}