gpt4 book ai didi

c# - 使用 Aspx 从 Mysql 下载 BLOB 文件

转载 作者:行者123 更新时间:2023-11-29 00:45:50 35 4
gpt4 key购买 nike

我们将文件作为 BLOB 存储在 mysql 中,文件名也一样。虽然 上传它的工作正常。现在我们要从 gridview 下载它 这也很完美。但是问题是下载完之后 很好,当我们尝试打开它时,它显示文件格式错误。我们只是 仅处理 office 文档和 pdf。

try
{
int did = Convert.ToInt32(e.CommandArgument);
DataSet path = download.GetresourcePath(did);
byte[] fileFromDatabase = null;
DataRow row = path.Tables[0].Rows[0];
fileFromDatabase = (byte[])row["UPLFILE"];
string filename = (string)row["FILENAME"];

if (fileFromDatabase.Length > 0)
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = string.Format("application/{0}",
Path.GetExtension(filename).Substring(1));
Response.AddHeader("content-disposition",
string.Format("attachment;filename={0}", filename));
Response.BinaryWrite(fileFromDatabase);
Response.Flush();
Response.End();
}
}
catch (Exception)
{
return;
}
  1. 这里 did 是我们从 GridView 中获取的文件的 ID。
  2. filename 是我们从数据库中获取的文件的名称。
  3. fileFromDatabase 是来自 Mysql 的 BLOB 文件,我们将其转换为 Byte。

那么有人可以告诉我我做错了什么吗?

最佳答案

尝试删除 header 条目并手动添加。

 Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Type", "application/octet-stream");
Response.AddHeader("Content-Length", fileFromDatabase.Length.ToString());
Response.AddHeader("Content-Disposition",string.Format("attachment;filename={0}", filename));
Response.BinaryWrite(fileFromDatabase);
Response.Flush();
Response.End();

关于c# - 使用 Aspx 从 Mysql 下载 BLOB 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547024/

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