C#上传文件的一个实现

你是第112位浏览该文章的人 痕迹 程序员大联盟 2003-4-9

实现这个General类

using System;
using System.Data;
using System.Data.SqlClient;
using CA.Components; //全部在组件名称空间下

namespace CA.Components
{
    public class General
    {
        private string FilePath; //文件路径

        //定义一个枚举用来存放文件的信息 
        public enum File
        {
            FILE_SIZE, //大小
            FILE_POSTNAME, //
            FILE_SYSNAME,
            FILE_ORGINNAME,
            FILE_PATH
        };
        //构造函数
        public general()
        {
            //在WEB.CONFIG中设定AppSettings["filepath"],用于存放文件的路径。
            FilePath = System.Configuration.ConfigurationSettings.AppSettings["filepath"];
        }

        /// <summary>
        /// 上传文件通用函数,此方法为静态,系统任何时候均可调用。
        /// </summary>
        /// <param name="file">参数为页面的FILE控件对象</param>
        /// <returns></returns>
        public static string[] UploadFile(HtmlInputFile file)
        {
            string[] arr = new String[5];
            //通过系统时间生成文件名,此功能可以封闭掉,不过中文长文件名支持的不好。
            string FileName = DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("-", "");
            string FileOrginName = file.PostedFile.FileName.Substring(file.PostedFile.FileName.LastIndexOf("\\") + 1);
            if (file.PostedFile.ContentLength <= 0)
                return null;
            string postFileName;
            string path = new general().FilePath + "\\";
            try
            {
                int pos = file.PostedFile.FileName.LastIndexOf(".") + 1;
                postFileName = file.PostedFile.FileName.Substring(pos, file.PostedFile.FileName.Length - pos);
                file.PostedFile.SaveAs(path + FileName + "." + postFileName);
            }
            catch (Exception exec)
            {
                throw (exec);
            }

            double unit = 1024;
            double size = Math.Round(file.PostedFile.ContentLength / unit, 2);
            arr[(int)File.FILE_SIZE] = size.ToString();//文件大小
            arr[(int)File.FILE_POSTNAME] = postFileName;//文件类型(文件后缀名)
            arr[(int)File.FILE_SYSNAME] = FileName;//文件系统名
            arr[(int)File.FILE_ORGINNAME] = FileOrginName;//文件原来的名字
            arr[(int)File.FILE_PATH] = path + FileName + "." + postFileName;//文件路径
            return arr;
            //throw(new Exception(HtmlUtility.HtmlEncode(IDNO.PostedFile.FileName)));
        }
    }
}
Contributors: FHL