C# 图片上传与显示

首先是msdn上的:使用控件:FileUpload Web 服务器控件

 

1.通过测试 FileUpload 控件的 HasFile 属性,检查该控件是否有上载的文件。

2.检查该文件的文件名或 MIME 类型以确保用户已上载了您要接收的文件。若要检查 MIME 类型,请获取作为 FileUpload 控件的 PostedFile 属性公开的 HttpPostedFile 对象。然后,通过查看已发送文件的 ContentType 属性,就可以获取该文件的 MIME 类型。

3.将该文件保存到您指定的位置。您可以调用 HttpPostedFile 对象的 SaveAs 方法。或者,还可以使用 HttpPostedFile 对象的 InputStream 属性,以字节数组或字节流的形式管理已上载的文件。

 

下面的示例演示如何使用已上载的文件。该代码根据允许的文件扩展名的硬编码列表检查已上载文件的文件扩展名,并拒绝所有其他类型的文件。然后,将该文件写入当前网站的 UploadedImages 文件夹中。用已上载文件在客户端计算机上的文件名保存该文件。由于 HttpPostedFile 对象的 FileName 属性返回该文件在客户端计算机上的完整路径,因此会使用 FileUpload 控件的 FileName 属性。

protected void Page_Load(object sender, EventArgs e)
{
    if(IsPostBack)
    {
        Boolean fileOK = false;
        String path = Server.MapPath("~/UploadedImages/");
        if (FileUpload1.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)
        {
            try
            {
                FileUpload1.PostedFile.SaveAs(path 
                    + FileUpload1.FileName);
                Label1.Text = "File uploaded!";
            }
            catch (Exception ex)
            {
                Label1.Text = "File could not be uploaded.";
            }
        }
        else
        {
            Label1.Text = "Cannot accept files of this type.";
        }
    }
}
判断是否是图片的方法,有好几种.
方法一:用后缀名判断: 
                int iIndex = sImgFileName.LastIndexOf(".");
                string sDat = sImgFileName.Substring(iIndex);
                if (sDat != ".gif" && sDat != ".jpg" && sDat != ".jpeg" && sDat != ".bmp" && sDat != ".png")
                
                      this.lbl_UploadStatus.Text = "请选择产品图片(.gif/.jpg/.jpeg/.bmp/.png)";
                       return true;
                   }
方法二:上面的msdn例子中.
方法三:
if(this.myfile.PostedFile.ContentType.ToString().ToLower().IndexOf("image")<0){ 
//非图片文件
}
在对图片删除的时候.先去数据库里删除相关图片信息.然后再用: 
System.IO.File.Delete(@"C:/ccc/ddd/eee.gif");
这里一定要用绝对路径.
 
 
 
 

你可能感兴趣的:(C# 图片上传与显示)