首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

关于ASP.NET中上传大文件的有关问题

2012-05-10 
关于ASP.NET中上传大文件的问题在网络上我找到很多种方式 。例如使用activex,httpworkrequest等,但是我不怎

关于ASP.NET中上传大文件的问题
在网络上我找到很多种方式 。例如使用activex,httpworkrequest等,但是我不怎么看得懂,使用组件,我不知如何处理,但是用httpworkrequest对文件进行分块处理,我更是云里雾里。有那位能够给我详细讲解一下任意一个可以上传较大的文件的方式(超过100M),不要那种设置web.config的标签来上传的。谢谢

[解决办法]
可考虑断点续传。IIS也要配置。
[解决办法]

C# code
/// <summary>        /// 在上传文件时同时将数据存入数据库所做的事务操作,返回是否操作成功        /// </summary>        /// <param name="cmdText">insert命令</param>        /// <param name="myParams">sql参数数组</param>        /// <param name="file">文件上传组件</param>        /// <param name="fileName">保存的文件名</param>        protected bool RunTranscation(string cmdText, OleDbParameter[] myParams, FileUpload file,string fileName)        {            string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["McmConnection"].ToString();//连接数据库字符串            OleDbConnection conn = new OleDbConnection(connectionString);//新建连接            conn.Open();//打开连接            OleDbTransaction otran = conn.BeginTransaction();//开启事务            OleDbCommand cmd = new OleDbCommand(cmdText, conn);//创建命令            cmd.Transaction = otran;//设置命令的事物为otran            int result = 0;//判断插入数据库是否成功            //为cmd添加参数            foreach (OleDbParameter param in myParams)            {                cmd.Parameters.Add(param);            }            try            {                result=cmd.ExecuteNonQuery();//执行插入操作                if (result == 1)//如果插入成功                {                    //string fileName = file.FileName;//文件名                    //string sNewFileName = DateTime.Now.ToString("yyyyMMddhhmmsfff");//以时间来重命名图片                    //string sExtension = file.FileName.Substring(file.FileName.LastIndexOf('.'));//图片的后缀名                    //file.SaveAs(uploadPath + sNewFileName + sExtension);//保存图片文件                    //string filePath = "../Uploads/" + folderName + "/" + sNewFileName + sExtension;//上传到Uploads文件夹的不同的文件夹下                    file_pastPaper.SaveAs(Server.MapPath("../"+fileName));//上传到文件夹中                    otran.Commit();//提交事务                    return true;                }                otran.Rollback();//回滚事务,操作失败            }            catch (Exception se)            {                //Response.Write("<script>alert('"+se.Message+"')</script>");\                //Response.Write("<script>alert('"+se.Message.ToString()+"')</script>");                otran.Rollback();//回滚事务                return false;            }            finally            {                conn.Close();            }            return false;        }
[解决办法]
400M以内的FileUpLoad控件可以直接搞定

热点排行