c# 使用base64在数据库中存取文件

本文介绍了一种使用Base64编码处理XML文本的方法,包括如何将XML文本转换为Base64字符串进行存储,以及从数据库读取并还原为原始XML格式的过程。此外还涉及了如何将Base64编码的数据用于文件下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对应的数据表的字段类型是:text

保存的时候:

   string strContent = XmlLib.XML_TextToDoc(TextBox_Content.Text);
   //toBase64
   strContent = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(strContent));
 再插入到数据表中.

打开的时候

    string strSQL = "Select * From sys_DocManage Where [ID]="+s_strID;
    string strConn = Session["ConnString"].ToString();
    OleDbConnection objConn = new OleDbConnection(strConn);
    objConn.Open();

    OleDbCommand objComm = new OleDbCommand(strSQL, objConn);
    OleDbDataReader objReader = objComm.ExecuteReader();

    if(objReader.Read())
    { 
     string strContent = objReader["Content"].ToString();
     //cover base64 to string
     if (strContent != "")
     {

  //转成文本便于编辑
      byte[] ayByte = Convert.FromBase64String(strContent);
      strContent = System.Text.Encoding.Default.GetString(ayByte);

     }
     TextBox_Content.Text = strContent;
     txtFieldName.Text = objReader["Name"].ToString();
    }

    objReader.Close();
    objConn.Close(); 

下载的时候

          string id = Request["id"];
            if (id != null && id != string.Empty)
            {
                string pattern = @"^[1-9]/d*$";
                Regex reg = new Regex(pattern);
                if (reg.IsMatch(id))
                {
                    string connStr = Session["ConnString"].ToString();
                    OleDbConnection conn = new OleDbConnection(connStr);
                    conn.Open();
                    //
                    OleDbCommand cmd = new OleDbCommand();
                   
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "SELECT Content,Name,FileType FROM sys_DocManage WHERE ID=" + id;
               
                    OleDbDataReader dr = cmd.ExecuteReader();
                    dr.Read();
                    int fileDataCol = 0;
                    string filename = dr["Name"].ToString();
                    string fileType = dr["FileType"].ToString();
                    string fileContent = dr["Content"].ToString();

                    byte[] a = Convert.FromBase64String(fileContent);//base64 的下载
                    
                    //Byte[] a = System.Text.Encoding.Default.GetBytes(fileContent);//非base64 的下载
                    Response.ContentType = "Application/msword";
                    //你把这一句换成相应类型即可
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + filename + "." + fileType );
                    this.Response.Clear();
                    System.IO.Stream fs = this.Response.OutputStream;
                    fs.Write(a, 0, a.Length);
                    fs.Close();
                    this.Response.End();
                }
                else
                {
                    Response.Write("Error: 参数错误");
                }
            }
            else
            {
                Response.Write("Error: 参数错误");
            }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值