首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

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

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

        IsAllowedExtension是否允许该扩展名上传#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

        IsAllowedLength判断上传文件大小是否超过最大值#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

        SaveFile上传文件并返回文件名#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

        CoverFile重新上传文件,删除原有文件#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

        DeleteFile删除指定文件#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

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

本文作者:佚名 来源:http://www.bjcan.com
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信