ASP.NET 上传文件以及点击下载

需求说明:

      实际项目中,有必要上传附件(包括图片、文档、解压文件等)对数据库数据完善,这里实现的功能就是,上传附件到数据库,然后从数据读出来之后,可以“点击下载”之前上传的附件内容。

asp.net代码如下:

//用FileUpload控件,上传附件之后,导入数据库操作
        protected void btnUp_Click(object sender, EventArgs e)
        {
            DbSql db = new DbSql();  //数据操作类
            string fileName = "";
            string fielurl = "";
            if (filePhoto.HasFile)
            {
                fileName = filePhoto.FileName;

                if (!ValidateFileType(fileName))  //上传文件类型判断
                {
                    Response.Write("<script>alert('不支持文件!')</script>");
                    return;
                }

                fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_");
                fileName = DateTime.Now.Ticks.ToString() + "_" + fileName;

                filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName));



                string strr = "~/upload/" + fileName + "";
                fielurl = "<a href=../MidDownFile.aspx?fileUrl=" + Server.UrlEncode(strr) + ">点击下载</a>";//用MidDownFile页面,处理对上传文件的下载
                db.ExecSql("insert into fileUp(t_content) values('" + fielurl + "')");  //数据操作类中的ExecSql方法,执行Sql语句
            }
            DataTable dt = db.FillDt("select * from fileUp");
            labFile.Text = dt.Rows[0]["t_content"].ToString()     //显示数据库中的第一条,用于测试
        }
下面是判断上传文件类型的一个使用方法

#region 上传文件类型判断
        protected readonly static List<string> VALID_FILE_TYPES = new List<string> { "jpg", "bmp", "gif", "jpeg", "png", "rar", "txt", "doc", "docx" };

        protected static bool ValidateFileType(string fileName)
        {
            string fileType = String.Empty;
            int lastDotIndex = fileName.LastIndexOf(".");
            if (lastDotIndex >= 0)
            {
                fileType = fileName.Substring(lastDotIndex + 1).ToLower();
            }

            if (VALID_FILE_TYPES.Contains(fileType))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion
接下来是MidDownFile.aspx页面处理对上传文件的下载

protected void Page_Load(object sender, EventArgs e)
        {
            string fileName = Server.UrlDecode(Request.QueryString["fileUrl"]);
            DownLoadFile(Server.MapPath(fileName), fileName);

        }
        /// <summary>
        /// 下载指定路径文件
        /// </summary>
        /// <param name="path">文件绝对路径</param>
        public static void DownLoadFile(string path, string oldFileName)
        {
            System.IO.FileInfo fi = new System.IO.FileInfo(path);
            //判断文件是否正在使用
            if (fi.Exists)
            {
                try
                {
                    using (System.IO.FileStream fs = System.IO.File.Open(path, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.None))
                    {
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                System.Web.HttpContext.Current.Response.Clear();
                System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(oldFileName, System.Text.Encoding.UTF8));
                System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fi.Length.ToString());
                System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream;charset=gb2321";
                System.Web.HttpContext.Current.Response.WriteFile(fi.FullName);
                System.Web.HttpContext.Current.Response.Flush();
                System.Web.HttpContext.Current.Response.Close();
            }
            else
            {
                System.Web.HttpContext.Current.Response.Write("源文件不存在!");
            }
        }




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
新闻管理系统(asp.net) 我开发了两天,开发好的。 主要缺点是不支持图片 欢迎大家修改完善 安装步骤: 1.首先您需要配置应用程序的运行环境。配置方法分为两步: (1)安装Internet 信息服务(需要用到系统安装光盘): 打开\"我的电脑\"-〉\"控制面板\"-〉\"添加或删除程序\"-〉点击左边的\"添加删除Windows组件\",在弹出的窗口中选择\"Internet 信息服务\"(IIS)(注:对于Windows Server 2003,\"Internet 信息服务\"被包含在应用程序服务器里边,只需要勾选 \"应用程序服务器\"即可),然后插入与当前系统相同的系统安装光盘,确定后开始安装。 (2)安装.Net Framework 2.0,下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 2.直接压缩本系统 装即可。如果希望新建一个虚拟目录或网站,请在网站上边点击右键选择新建虚拟目录(Windows服务器版本里有才有\"新建网站\"选项). 3.打开控制面板,管理工具,双击运行 Internet信息服务。依次打开网站 默认网站 找到虚拟目录,在右边右键选择main或是default.aspx,选择浏览即可。 asp.net常见错误及解决办法 1.错误描述:位于Config目录内的Web.sitemap文件格式不正确。或 操作必须有一个可更新的查询 分析:这可能是因为你使用了NTFS文件系统造成的,不恰当的NTFS授权也会导致这种错误。网站Config和App_Data两个文件夹需要有读写的权限。 解决办法:分别在Config和App_Data两个文件夹上点击右键,选择属性,选择安全选项卡,察看Everyone用户是否有修改的权限,如果没有请勾选。如果没有Everyone用户请依次点击添加、高级、立即查找,选中查找到的Everyone用户确定即可。 2.错误描述:无法显示 XML 页。使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。.... 分析:这可能是由于你没有正确安装.netframework 2.0的结果。 解决办法:打开IIS(即Internet信息管理器),在已安装的网站名称上边点击右键,选择属性,切换到Asp.net选项卡,察看ASP.Net version(即Asp.net版本)的选项是否为空,如果为空请从下拉列表选择2.0.50727版本或更高版本。 3.无法找到该页 分析:这可能是因为你使用的是Windows Server 2003操作系统。 解决办法:请打开IIS(Internet服务器),找到Web服务器扩展,设置Asp.Net为允许。 另一个可能的原因 可能是因为你在后台启用了Url重写功能,如果你设置了非aspx扩展名的文件扩展名,那么你需要手动在IIS(即Internet信息管理器)里边进行设置,具体方法如下: 首先在左边栏里需要设置的网站或虚拟目录上边点击右键并选择\"属性\",在\"虚拟目录\"选项卡中点击\"配置\",在打开的\"应用程序配置\"窗口中点击\"添加\",在可执行文件里边填写处理aspx文件的Dll文件路径,一般为c:\\windows\\microsoft.net\\framework\\v2.0.50727\\aspnet_isapi.dll,在扩展名里边填写你要模拟的文件扩展名,如.html.将\"动作\"限制为 GET,POST,并勾掉\"确认文件是否存在\"前边的勾即可。 4.如果仍然不能解决问题,请重新安装.net framework 2.0.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值