ASP.NET程序上传文件功能的具体实例代码

using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.IO;

///   <summary>  
///  Summary description for UploadFile 
///   </summary>  
public   class  UploadFile
{
    
private   string [] AllowFileType;  // 所允许的文件类型 
     private   double  FileLength;  // 所允许的文件大小(KB) 
     private   string  SavePath;  // 文件的存储路径 
     private   string  SaveFile;  // 上传后的文件名 
     private   string  Error;  // 存储错误信息 
     private   string  FileExtesion;  // 上传文件的扩展名 

    
///   <summary>  
    
///  构造函数 
    
///   </summary>  
    
///   <param name="allFileType"> 允许的文件类型,多个以","分开 </param>  
    
///   <param name="fileLength"> 文件大小 </param>  
    
///   <param name="savePath"> 保存路径 </param>  
     public  UploadFile( string  allFileType,  double  fileLength,  string  savePath)
    {
        
char [] sp  =  {  ' , '  };
        AllowFileType 
=  allFileType.Split(sp);
        FileLength 
=  fileLength  *   1024 ;
        SavePath 
=  savePath;
    }

    
///   <summary>  
    
///  返回生成的文件名 
    
///   </summary>  
     public   string  FileName
    {
        
get
        {
            
return  SaveFile;
        }
    }

    
///   <summary>  
    
///  返回出错信息 
    
///   </summary>  
     public   string  ErrorMessage
    {
        
get
        {
            
return  Error;
        }
    }

    
///   <summary>  
    
///  根据SavePath,生成文件名 
    
///   </summary>  
    
///   <returns></returns>  
     private   string  MakeFileName( string  fileType, string  fileName)
    {
        
string  file  =   this .SavePath    " \\ "    DateTime.Now.ToString( " yyMMddhhmmss " )   fileName;
        
while  (File.Exists(file))
        {
            file 
=   this .SavePath    " \\ "    DateTime.Now.ToString( " yyMMddhhmmss " )   fileName;
        }
        
return  file;
    }

    
///   <summary>  
    
///  检查文件类型 
    
///   </summary>  
    
///   <param name="fileEx"> MIME内容 </param>  
    
///   <returns></returns>  
     private   bool  CheckFileExt( string  fileEx)
    {
        
bool  result  =   false ;
        
for  ( int  i  =   0 ; i  <   this .AllowFileType.Length; i  )
        {
            
if  (fileEx.IndexOf( this .AllowFileType[i].ToLower())  >   - 1 )
            {
                result 
=   true ;
                
break ;
            }
        }
        
return  result;
    }

    
public   bool  UpLoad(System.Web.UI.WebControls.FileUpload file)
    {
        
bool  result  =   true ;
        
try
        {
            
// 查看文件长度 
             if  (file.PostedFile.ContentLength  >  ( this .FileLength))
            {
                
this .Error  =   " 文件大小超出范允许的范围! " ;
                
return   false ;
            }

            
string  fileName  =  Path.GetFileName(file.PostedFile.FileName);
            
this .FileExtesion  =  Path.GetExtension(fileName);

            
if  ( ! CheckFileExt( this .FileExtesion.ToLower()))
            {
                
this .Error  =   " 文件类型 "     this .FileExtesion    " 不允许! " ;
                
return   false ;
            }
            
// 取得要保存的文件名 
             string  UpFile  =   this .MakeFileName( this .FileExtesion, fileName);
            
// 保存文件 
            file.PostedFile.SaveAs(UpFile);

            
// 返回文件名 
             this .SaveFile  =  Path.GetFileName(UpFile);

        }
        
catch  (Exception e)
        {
            result 
=   false ;
            
this .Error  =  e.Message;
        }
        
return  result;
    }



你可能感兴趣的:(asp.net)