快速业务通道

HtmlInputFile控件上传文件的基类

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12

using System;
using System.Web.UI.HtmlControls;
using System.IO;

namespace Document.Bll
{
    
public class HtmlInputFileControl
    
{
      
#region HtmlInputFileControl
        
public HtmlInputFileControl()
        
{
         }

        
#endregion


      
#region IsAllowedExtension是否允许该扩展名上传
        
public static bool IsAllowedExtension(HtmlInputFile hifile)
        
{
            
string strOldFilePath = "",strExtension = "";

            
//允许上传的扩展名,可以改成从配置文件中读出
            string[] arrExtension = {".gif",".jpg",".jpeg",".bmp",".png"};

            
if(hifile.PostedFile.FileName != string.Empty)
            
{
                 strOldFilePath
= hifile.PostedFile.FileName;
                
//取得上传文件的扩展名
                 strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
                
//判断该扩展名是否合法
                for(int i = 0; i< arrExtension.Length; i++)
                
{
                    
if(strExtension.Equals(arrExtension[i]))
                    
{
                        
return true;
                     }

                 }

             }
        
           
return false;
         }

        
#endregion


       
#region IsAllowedLength判断上传文件大小是否超过最大值
        
public static bool IsAllowedLength(HtmlInputFile hifile)
        
{
            
//允许上传文件大小的最大值,可以保存在xml文件中,单位为KB
            int i = 20;
            
//如果上传文件的大小超过最大值,返回flase,否则返回true.
            if(hifile.PostedFile.ContentLength > i * 1024)
            
{
                
return false;
             }

            
return true;
         }

        
#endregion


       
#region SaveFile上传文件并返回文件名
        
public static string SaveFile(HtmlInputFile hifile,string strAbsolutePath)
        
{
            
string strOldFilePath = "",strExtension = "",strNewFileName = "";

            
if(hifile.PostedFile.FileName != string.Empty)
            
{
                 strOldFilePath
= hifile.PostedFile.FileName;
                
//取得上传文件的扩展名
                 strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
                
//文件上传后的命名
                 strNewFileName = GetUniqueString() + strExtension;
                
if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
                
{
                     hifile.PostedFile.SaveAs(strAbsolutePath
+ strNewFileName);    
                 }

                
else
                
{
                     hifile.PostedFile.SaveAs(strAbsolutePath
+ "\\" + strNewFileName);    
                 }

             }

            
return strNewFileName;
         }

        
#endregion


        
#region CoverFile重新上传文件,删除原有文件
        
public static void CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName)
        
{
            
//获得新文件名
            string strNewFileName = GetUniqueString();

            
if(ffFile.PostedFile.FileName != string.Empty)
            
{
                
//旧图片不为空时先删除旧图片
                if(strOldFileName != string.Empty)
                
{                    
                     DeleteFile(strAbsolutePath,strOldFileName);                                        
                 }

                 SaveFile(ffFile,strAbsolutePath);
             }
            
         }

        
#endregion


      
#region DeleteFile删除指定文件
        
public static void DeleteFile(string strAbsolutePath, string strFileName)
        
{
            
if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
            
{
                
if(File.Exists(strAbsolutePath + strFileName))
                
{                    
                     File.Delete(strAbsolutePath
+ strFileName);
                 }

             }

            
else
            
{                
                
if(File.Exists(strAbsolutePath + "\\" + strFileName))
                
{                    
                     File.Delete(strAbsolutePath
+ "\\" + strFileName);
                 }

             }

         }

        
#endregion


    
#region GetUniqueString获取一个不重复的文件名        
        
public static string GetUniqueString()
        
{            
            
return DateTime.Now.ToString("yyyyMMddhhmmss");
         }

        
#endregion

     }

}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号