C# 通用上传文件类

1、Upfile.aspx:
<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " Upfile.aspx.cs "  Inherits = " Inc_Upfile "   %>

<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " ; >

< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
    
< title > 上传文件 </ title >
    
< link href = " ../Manage/Style.Css "  type = " text/css "  rel = Stylesheet  />
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
    
< div style = " left: 0px; clip: rect(0px auto auto 0px); position: absolute; top: 0px " >
        
< asp:FileUpload ID = " FileUpload1 "  runat = " server "    />
        
< asp:Button ID = " Button1 "  runat = " server "  OnClick = " Button1_Click "  Text = " 上传文件 "  CssClass = " btn2 "   />
        
< asp:Label ID = " Label1 "  runat = " server "  Text = " Label " ></ asp:Label ></ div >
    
</ form >
</ body >
</ html >

2、Upfile.aspx.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  Inc_Upfile : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
//Cut By 梦溪苑。
    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
        AllSheng.upload UpFiles 
= new AllSheng.upload();

     
        
//HttpPostedFile File = FileUpload1.PostedFile;
      
// AllSheng.UploadObj.PhotoSave("/", FileUpload1);
        HttpFileCollection files = HttpContext.Current.Request.Files;
            UpFiles.Path 
= "../UpLoadfiles";
            String ReStr
= UpFiles.SaveAs(files).ToString();
            Label1.Text 
= ReStr;
            UpFiles 
= null;
    }

}

3、类文件:
  • using  System;
    using  System.Data;
    using  System.Configuration;
    using  System.Web;
    using  System.Web.UI;
    using  System.Web.UI.WebControls;
    using  System.Web.UI.WebControls.WebParts;
    using  System.Web.UI.HtmlControls;

    /// <summary>
    /// Cls_Upfile 的摘要说明
    /// </summary>
    ///

    namespace  AllSheng
    {
        
    public class upload
        
    {
            
    #region 变量

            System.Web.HttpPostedFile postedFile;

            
    protected string localFileName;//原文件名(含扩展名)
            protected string localFileExtension;//原扩展名
            protected long localFileLength;//原文件大小
            protected string localFilePath;//原文件路径

            
    protected string saveFileName;//保存的文件名(含扩展名)
            protected string saveFileExtension;//保存的扩展名
            
    //protected long saveFileLength;//保存的文件大小
            protected string saveFilePath;//保存文件的服务器端的完整路径
            protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径


            
    private string path = null;
            
    private string fileType = null;
            
    private int sizes = 0;

            
    #endregion


            
    #region upload():初始化变量
            
    /// <summary>
            
    /// 初始化变量
            
    /// </summary>

            public upload()
            
    {
                path 
    = @"uploadimages"//上传路径
                fileType = "jpg|gif|bmp|jpeg|png|rar|doc";
                sizes 
    = 200//传文件的大小,默认200KB
            }

            
    #endregion


            
    #region 设置传入的值:Path/Sizes/FileType
            
    /// <summary>
            
    /// 设置上传路径,如:uploadimages
            
    /// </summary>

            public string Path
            
    {
                
    set
                
    {
                    path 
    = @"" + value + @"";
                }

            }


            
    /// <summary>
            
    /// 设置上传文件大小,单位为KB
            
    /// </summary>

            public int Sizes
            
    {
                
    set
                
    {
                    sizes 
    = value;
                }

            }


            
    /// <summary>
            
    /// 设置上传文件的类型,如:jpg|gif|bmp
            
    /// </summary>

            public string FileType
            
    {
                
    set
                
    {
                    fileType 
    = value;
                }

            }

            
    #endregion

           
            
    #region SaveAs()上传文件

          
    public string  SaveAs(System.Web.HttpFileCollection files)
            
    {
                
    string myReturn = "";
                
    try
                
    {
                    
    for (int iFile = 0; iFile < files.Count; iFile++)
                    
    {
                        postedFile 
    = files[iFile];
                        
    //获得文件的上传的路径
                        localFilePath = postedFile.FileName;
                        
    //判断上传文件路径是否为空
                        if (localFilePath == null || localFilePath == "")
                        
    {
                            
    //message("您没有上传数据呀,是不是搞错了呀!");
                            
    //break;

                            
    continue;
                        }

                        
    else
                        
    {
                            
    #region 判断文件大小
                            
    //获得上传文件的大小
                            localFileLength = postedFile.ContentLength;
                            
    //判断上传文件大小
                            if (localFileLength >= sizes * 1024)
                            
    {
                                message(
    "上传的图片不能大于" + sizes + "KB");
                                
    break;
                            }

                            
    #endregion


                            
    #region 文件夹
                            
    //获取保存文件夹路径
                            saveFileFolderPath = getSaveFileFolderPath(path);
                            
    #endregion


                            
    #region 文件名
                            
    //获得原文件名(含扩展名)
                            localFileName = System.IO.Path.GetFileName(postedFile.FileName);
                           
                            saveFileName 
    = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
                            #endregion


                            
    #region 扩展名
                            
    //获取原文件扩展名
                            localFileExtension = getFileExtension(localFileName);

                            
    //如果为真允许上传,为假则不允许上传
                            if (localFileExtension == "")
                            
    {
                                message(
    "目前本系统支持的格式为:" + fileType);
                            }

                            
    //得到保存文件的扩展名,可根据需要更改扩展名
                            saveFileExtension = localFileExtension;
                            
    #endregion


                            
    //得到保存文件的完整路径
                            saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;
                            postedFile.SaveAs(saveFilePath);
                            myReturn 
    = myReturn + ((myReturn == "" || myReturn == null? "" : "|"+ path.TrimStart(new char[] '/' }+ saveFileName + saveFileExtension;
                          
    //以下对文章的内容进行一些加工

                            System.Web.HttpContext.Current.Response.Write(
    "<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");
                           
                        }

                    }

                }

                
    catch
                
    {
                    
    //异常
                    message("出现未知错误!");
                    myReturn 
    = null;
                }

                
    return myReturn;
            }

            
    #endregion


            
    #region getSaveFileFolderPath(...):获得保存的文件夹的物理路径
            
    /// <summary>
            
    /// 获得保存的文件夹的物理路径
            
    /// 返回保存的文件夹的物理路径,若为null则表示出错
            
    /// </summary>
            
    /// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
            
    /// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>

            private string getSaveFileFolderPath(string format)
            
    {
                
    string mySaveFolder = null;
                
    try
                
    {
                    
    string folderPath = null;
                    
    //以当前时间创建文件夹,
                    
    //!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
                    if (format.IndexOf("yyyy"> -1 || format.IndexOf("MM"> -1 || format.IndexOf("dd"> -1 || format.IndexOf("hh"> -1 || format.IndexOf("mm"> -1 || format.IndexOf("ss"> -1 || format.IndexOf("ff"> -1)
                    
    {
                        
    //以通用标准时间创建文件夹的名字
                        folderPath = DateTime.UtcNow.ToString(format);
                        mySaveFolder 
    = System.Web.HttpContext.Current.Server.MapPath("."+ @"" + folderPath + @"";
                    }

                    
    else
                    
    {
                        mySaveFolder 
    = System.Web.HttpContext.Current.Server.MapPath("."+ format;
                    }

                    System.IO.DirectoryInfo dir 
    = new System.IO.DirectoryInfo(mySaveFolder);
                    
    //判断文件夹否存在,不存在则创建
                    if (!dir.Exists)
                    
    {
                        dir.Create();
                    }

                }

                
    catch
                
    {
                    message(
    "获取保存路径出错");
                }

                
    return mySaveFolder;
            }


            
    #endregion


            
    #region getFileExtension(...):获取原文件的扩展名
            
    /// <summary>
            
    /// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
            
    /// </summary>
            
    /// <param name="myFileName">原文件名</param>
            
    /// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>

            private string getFileExtension(string myFileName)
            
    {
                
    string myFileExtension = null;
                
    //获得文件扩展名
                myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
                
    //分解允许上传文件的格式
                if (myFileExtension != "")
                
    {myFileExtension = myFileExtension.ToLower();//转化为小写
                }

                
    string[] temp = fileType.Split('|');
                
    //设置上传的文件是否是允许的格式
                bool flag = false;
                
    //判断上传的文件是否是允许的格式
                foreach (string data in temp)
                
    {
                    
    if (("." + data) == myFileExtension)
                    
    {
                        flag 
    = true;
                        
    break;
                    }

                }

                
    if (!flag)
                
    {
                    myFileExtension 
    = "";//不能设置成null,因为null表明文件无后缀名;
                }

                
    return myFileExtension;
            }

            
    #endregion


            
    #region message(...):弹出消息框
            
    /// <summary>
            
    /// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
            
    /// </summary>
            
    /// <param name="msg">显示内容</param>
            
    /// <param name="url">跳转路径</param>

            private void message(string msg, string url)
            
    {
                System.Web.HttpContext.Current.Response.Write(
    "<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");
            }


            
    /// <summary>
            
    /// 弹出消息框,显示内容(msg),无跳转
            
    /// </summary>
            
    /// <param name="msg">显示内容</param>

            private void message(string msg)
            
    {
                System.Web.HttpContext.Current.Response.Write(
    "<script language=javascript>alert('" + msg + "');</script>");
            }

            
    #endregion

        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值