2004-05-18 lsmodel ai361.com C#上传文件的一个实现 using System; using System.Data; using System.Data.SqlClient; using CA.Components; //全部在组件名称空间下 namespace CA.Components { /// <summary> /// General 的摘要说明。 /// 发布日期:2002-8-8 原作者:雷神 /// 此程序属模式小组 HTTP://WWW.AI361.COM/PROJECT/ /// 在sql2000,WIN2000s+.net+iis5中测试通过 /// </summary> 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))); } } } If you have any question or comments,Please mail to me (lsmodel@ai361.com) or discuss in our forum ( http://www.ai361.com/bbs). 正文完