自己写的一个文件上传的类iteye技术网站
2011年07月01日
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Runtime.Remoting.Messaging; namespace uploadfiles { /// /// ClassUpload 的摘要说明。 /// /* wenconfig中添加元素 */ /* Machine.config中添加元素 aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。 如果遇到此错误信息,请增加应用程序的 Machine.config 文件的 元素中 memoryLimit 属性的值。 --> */ public class ClassUpload { public ClassUpload() { // // TODO: 在此处添加构造函数逻辑 // } private System.IO.MemoryStream m; private System.IO.Stream fs; private string _filename; //上传文件扩展名 private int _maxlength; //获取上传文件最大长度(字节) private string _FilePath; //获取本地上传文件路径 private int _length = 0; //保存文件长度(字节) private string _savepath; //获取保存路径 private string _savename; //重命名后的上传文件 private string _fullpath; //上传文件的完整目录 /// /// 上传文件成功后文件的长度(字节) /// public int length { get { return _length; } } /// /// 获取保存路径 /// public string savepath { get { return _savepath; } } /// /// 获取重命名后的上传文件 /// public string savename { get { return _savename; } } /// /// 获取上传后文件的完整目录 /// public string fullpath { get { return _fullpath; } } /// /// 获取本地上传文件路径 /// public string filepath { get { return _FilePath; } } /// /// 上传文件方法 /// /// System.Web.UI.HtmlControls.HtmlInputF ile /// 设置保存上传文件的路径 /// 设置上传文件的最大长度 public string upload(System.Web.UI.HtmlControls.HtmlInputFile MyFile,string savepath,int maxlength) { this._savepath = savepath; this._maxlength = maxlength; //得到上载文件信息和文件流 if(MyFile.PostedFile != null) { System.Web.HttpFileCollection oFiles; oFiles = System.Web.HttpContext.Current.Request.Files; if(oFiles.Count this._maxlength) { return "上传文件长度过大"; } else { try { //处理上载的文件流信息。 byte[] b = new byte[oFiles[0].ContentLength]; //System.IO.Stream fs; fs = (System.IO.Stream)oFiles[0].InputStream; fs.Read(b, 0, oFiles[0].ContentLength); //调用处理内存流方法UploadFile return this.UploadFile(b,this._filename,this._savepath); //int value = Convert.ToInt32(asy.AsyncState); } catch(Exception ex) { //Response.Write(ex.Message); return ex.Message; } finally { fs.Close(); } } } else { //Response.Write("请选择文件"); return "请选择文件"; } } private string UploadFile(byte[] fs,string FileName,string savepath) { try { //定义并实例化一个内存流,以存放提交上来的字节数组。 m = new MemoryStream(fs); this._length = fs.Length; //System.Web.HttpContext.Current.Server.MapPath(". ") + @"\\images\" //定义实际文件对象,保存上载的文件。 this._fullpath = this._savepath+ names()+FileName; FileStream f = new FileStream(this._fullpath, FileMode.Create); this._savename = names()+FileName; //把内内存里的数据写入物理文件 m.WriteTo(f); m.Close(); f.Close(); f = null; m = null; return "文件已经上传成功!"; } catch(Exception ex) { return ex.Message; } } //生成 (年,月,日,时,分,秒)+随机数的文件名 private string names() { Random rm = new Random(System.Environment.TickCount); return System.DateTime.Now.ToString("yyyyMMddhhmmss")+rm. Next(1000,9999).ToString(); } } }
2011年07月01日
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Runtime.Remoting.Messaging; namespace uploadfiles { /// /// ClassUpload 的摘要说明。 /// /* wenconfig中添加元素 */ /* Machine.config中添加元素 aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。 如果遇到此错误信息,请增加应用程序的 Machine.config 文件的 元素中 memoryLimit 属性的值。 --> */ public class ClassUpload { public ClassUpload() { // // TODO: 在此处添加构造函数逻辑 // } private System.IO.MemoryStream m; private System.IO.Stream fs; private string _filename; //上传文件扩展名 private int _maxlength; //获取上传文件最大长度(字节) private string _FilePath; //获取本地上传文件路径 private int _length = 0; //保存文件长度(字节) private string _savepath; //获取保存路径 private string _savename; //重命名后的上传文件 private string _fullpath; //上传文件的完整目录 /// /// 上传文件成功后文件的长度(字节) /// public int length { get { return _length; } } /// /// 获取保存路径 /// public string savepath { get { return _savepath; } } /// /// 获取重命名后的上传文件 /// public string savename { get { return _savename; } } /// /// 获取上传后文件的完整目录 /// public string fullpath { get { return _fullpath; } } /// /// 获取本地上传文件路径 /// public string filepath { get { return _FilePath; } } /// /// 上传文件方法 /// /// System.Web.UI.HtmlControls.HtmlInputF ile /// 设置保存上传文件的路径 /// 设置上传文件的最大长度 public string upload(System.Web.UI.HtmlControls.HtmlInputFile MyFile,string savepath,int maxlength) { this._savepath = savepath; this._maxlength = maxlength; //得到上载文件信息和文件流 if(MyFile.PostedFile != null) { System.Web.HttpFileCollection oFiles; oFiles = System.Web.HttpContext.Current.Request.Files; if(oFiles.Count this._maxlength) { return "上传文件长度过大"; } else { try { //处理上载的文件流信息。 byte[] b = new byte[oFiles[0].ContentLength]; //System.IO.Stream fs; fs = (System.IO.Stream)oFiles[0].InputStream; fs.Read(b, 0, oFiles[0].ContentLength); //调用处理内存流方法UploadFile return this.UploadFile(b,this._filename,this._savepath); //int value = Convert.ToInt32(asy.AsyncState); } catch(Exception ex) { //Response.Write(ex.Message); return ex.Message; } finally { fs.Close(); } } } else { //Response.Write("请选择文件"); return "请选择文件"; } } private string UploadFile(byte[] fs,string FileName,string savepath) { try { //定义并实例化一个内存流,以存放提交上来的字节数组。 m = new MemoryStream(fs); this._length = fs.Length; //System.Web.HttpContext.Current.Server.MapPath(". ") + @"\\images\" //定义实际文件对象,保存上载的文件。 this._fullpath = this._savepath+ names()+FileName; FileStream f = new FileStream(this._fullpath, FileMode.Create); this._savename = names()+FileName; //把内内存里的数据写入物理文件 m.WriteTo(f); m.Close(); f.Close(); f = null; m = null; return "文件已经上传成功!"; } catch(Exception ex) { return ex.Message; } } //生成 (年,月,日,时,分,秒)+随机数的文件名 private string names() { Random rm = new Random(System.Environment.TickCount); return System.DateTime.Now.ToString("yyyyMMddhhmmss")+rm. Next(1000,9999).ToString(); } } }