新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:我写的上传(upload)文件的codebehind代码

我写的上传(upload)文件的codebehind代码

新客网 XKER.COM 2003-07-12 来源: 收藏本文
功能:
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[i];
                    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[i].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[i];
                        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();

        }
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐