深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

上传(upload)文件的codebehind代码


March 25,2004
功能:
1。把图片文件(JPG GIF PNG)上传,
2。保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),
3。并自动生成指定宽度的(在web.config中设置宽度)
4。和指定格式的(在web.config中指定缩略图的格式)
5。和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)
6。可以判断是否已经存在文件
7。如果不覆盖,则给出错误
8。如果选中"覆盖原图"checkbox,则覆盖原图。
9。可以根据要求,在webform上设置1个以上的file input和相应的checkbox
10。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和
11。缩略图的文件名尺寸。
12。缩略图的文件名格式:原图+"_thumb."+指定格式,如:test.jpg_thumb.gif,以便于管理。

--------------------
public void UploadFile(object sender, System.EventArgs e)
        {
            
                string imgNameOnly, imgNameNoExt, imgExt;
                string imgThumbnail;
                int erroNumber = 0;
                System.Drawing.Image oriImg, newImg;
                string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
                string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
                int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
                string fileExt;

                StringBuilder picInfo = new StringBuilder();
            
            if(Page.IsValid)
            {
            

                for(int i = 0;i < Request.Files.Count; i++)
                {
                    HttpPostedFile PostedFile = Request.Files;
                    fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();
               
                    imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
                    if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png")
                    {

                        if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items.Selected == false))
                        {
                            erroNumber = erroNumber + 1;
                            picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 已经存在,请修改文件名<br>" );
                        }
                    }
                    else
                    {
                        erroNumber = erroNumber + 1;
                        picInfo.Append("<b>错误:</b>文件("+ (i+1) +") " + imgNameOnly + " 扩展名 " + fileExt + " 不被许可<br>" );
                    }               

                }

                if(erroNumber > 0)
                {
                    picInfo.Append("<font color=red>全部操作均未完成,请修改错误,再进行操作</font><br>");
                }
                else            
                {
                    for(int i = 0;i < Request.Files.Count; i++)
                    {
               
                        HttpPostedFile PostedFile = Request.Files;
                        imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
                        imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
                        imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
                    
                    
                        oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);
                        newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
                        switch(imgExt)
                        {
                            //case ".jpeg":
                            case ".jpg":
                                oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg);
                                break;
                            case ".gif":
                                oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif);
                                break;
                            case ".png":
                                oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png);
                                break;
                        }
                        
                        //oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                                       
                        switch(strFePicThumbFormat)
                        {
                                //jpeg format can get the smallest file size, and the png is the largest size
                            //case "jpeg":
                            case "jpg":
                                newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
                                imgThumbnail = imgNameOnly + "_thumb.jpg";
                                break;
                            case "gif":
                                newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
                                imgThumbnail = imgNameOnly + "_thumb.gif";
                                break;
                            case "png":
                                newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
                                imgThumbnail = imgNameOnly + "_thumb.png";
                                break;
                            default:
                                newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
                                imgThumbnail = imgNameOnly + "_thumb.jpg";                        
                                break;
                    
                        }//switch
                        
                        picInfo.Append("<b>文件 名:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br>");
                        picInfo.Append("<b>缩略图名:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br><br>");
                    
                        oriImg.Dispose();
                        newImg.Dispose();               
                    
                    }//for
                    picInfo.Append("<font color=red>所有操作成功</font><br>");

                }// if erronumber = 0

            
               
            }
            else
            {
                picInfo.Append("<font color=red>有错误,请检查。操作未成功</font><br>");

            }

            lblPicInfo.Text = picInfo.ToString();

        }
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved