gpt4 book ai didi

asp.net - 无法获取数据库中保存的文本文件的内容(My-Sql)

转载 作者:可可西里 更新时间:2023-11-01 07:57:26 25 4
gpt4 key购买 nike

在我的 MySql 中,我的数据字段为 longblob 我想获取该文件中的内容,所以我编写了如下代码

这是我在插入之前所做的

  string filePath = Server.MapPath("AchTemplates/genACH.txt");
string filename = Path.GetFileName(filePath);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();

string strQuery = "insert into tblFiles(FName,FData) values (@_FName, @_FData)";
MySqlCommand cmd = new MySqlCommand(strQuery);
cmd.Parameters.Add("@_FName", MySqlDbType.VarChar).Value = filename;
cmd.Parameters.Add("@_FData", MySqlDbType.LongBlob).Value = bytes;
InsertUpdateData(cmd);

//获取数据

private void download(DataTable dt)
{
Byte[] bytes = (Byte[])dt.Rows[0]["FData"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = dt.Rows[0]["ContentType"].ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ dt.Rows[0]["Name"].ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}

但是我得到的内容是 system.string[] 任何人都可以告诉为什么会这样

最佳答案

如果 dt.Rows[0]["FData"] 以字符串形式出现(它只是纯文本),使用

byte[] bytes = Encoding.UTF8.GetBytes(dt.Rows[0]["FData"]);

如果数据不是纯文本和二进制存储为字符串(而不是 base64 编码),那么你就有麻烦了,我的 friend 。


更新

根据 MySql documentation ,看来您应该使用 LONGBLOB 而不是 LONGTEXT

关于asp.net - 无法获取数据库中保存的文本文件的内容(My-Sql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com