我们正在将文件存储为mysql中的文件名也是。也就是 上传它的工作正常。现在我们想要从gridview 下载它,这也是完美的。但问题是,在我们尝试打开它时,下载了 后显示文件格式错误。我们只处理办公文档和pdf只有 。使用Aspx从Mysql下载BLOB文件
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;
}
- 在这里所做的是我们得到它从网格视图文件的ID。
- filename是我们从数据库中获得的文件的名称。
- fileFromDatabase是Mysql的BLOB文件,我们将它转换为Byte。
所以,任何人都可以告诉我我做错了什么?
文件大小最大为4MB。你可以告诉我为什么它显示文件格式错误。 – Aaraadhana