asp.net 上传文件并将路径写入数据库

1、在页面前端添加浏览文件使用的打开对话框,获取要上传的文件路径及文件名
     <asp:FileUpload ID="upFile" runat ="server" />
2、添加上传按钮,用户点击后上传文件
<asp:Button ID="upLoad" runat ="server" Text ="上传图片" onclick="upLoad_Click" />
3、点击上传按钮
//上传图片
    protected void upLoad_Click( object sender, EventArgs e)
    {
        try
        {
            if (upFile.PostedFile.FileName == "")
            {
                Response.Write( "<script>alert('上传的文件不允许为空!');</script>" );
                return;
            }
            else
            {
                string filePath = upFile.PostedFile.FileName;//获取文件路径
                string fileName = filePath.Substring(filePath.LastIndexOf("\\" ) + 1);//获取文件名
                string fileEx = fileName.Substring(fileName.LastIndexOf("." ) + 1).ToLower();//获取文件的扩展名
                string serverpath = Server.MapPath( "Resources/" + theater.SelectedIndex + "/Image/" ) + fileName;//将文件存放的完整服务器路径

                if (fileEx == "jpg" || fileEx == "png" )
                {
                    if (model.SelectedValue != "该场馆无模型" )
                    {
                        upFile.PostedFile.SaveAs(serverpath);
                        write_DataBase( "Resources/" + theater.SelectedIndex + "/Image/" + fileName);//将上传的文件信息写入数据库
                    }
                    else
                    {
                        Response.Write( "<script>alert('未选择图片所属模型!');</script>" );
                    }
                }
                else
                {
                    Response.Write( "<script>alert('上传的文件类型不正确,请重新选择!');</script>" );
                }
            }
        }
        catch ( Exception ex)
        {
            throw ex;
        }
    }

4、将上传文件的路径写入数据库
//将文件信息写入数据库
    private void write_DataBase( string serverpath)
    {
        try
        {
            //生成图片位置
            string server = ConfigurationManager .AppSettings["server" ];
            string dbPath = server + serverpath;

            //生成imageid
            string sql = "select max(imageid) from image" ;
            int max_imageid = 0;
            OracleDataReader dr;
            db.GetDateReader(sql, out dr);
            if (dr.Read() && dr[0].ToString()!= "" )
            {
                max_imageid = Convert.ToInt32(dr[0].ToString()) + 1;//生成imageid使其大于现有的最大id
            }
            //生成modelid
            int modelid = 0;
            sql = "select modelid from model where modelname = '" + model.SelectedValue + "'";
            db.GetDateReader(sql, out dr);
            if (dr.Read())
            {
                modelid = Convert.ToInt32(dr[0].ToString());
            }
            //写入数据库
            sql = "insert into image values(" + max_imageid + "," + modelid + ",'" + dbPath + "',0" + ")" ;
            int return_value = 0;
            db.ProcessRecord(sql, out return_value);
            if (return_value == 0)
            {
                Response.Write( "<script>alert('上传文件失败');window.location.reload();</script>" );
            }
            else
            {
                Response.Write("<script>window.location.reload();</script>" );
            }
        }
        catch ( Exception ex)
        {
            throw ex;
        }
    }

你可能感兴趣的:(asp.net 上传文件并将路径写入数据库)