试试这个:
int id = int.Parse(context.Request.QueryString["id"]);
byte[] bytes;
string contentType;
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string name;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Name, Data, ContentType from tblFiles where [email protected]";
cmd.Parameters.AddWithValue("@Id", id);
cmd.Connection = con;
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
bytes = (byte[])sdr["Data"];
contentType = sdr["ContentType"].ToString();
name = sdr["Name"].ToString();
con.Close();
}
}
context.Response.Clear();
context.Response.Buffer = true;
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name);
context.Response.ContentType = contentType;
context.Response.BinaryWrite(bytes);
context.Response.End();
如果你没有使用数据库然后试试这个:
string FileName = dateTimeStamp + "SiteReservation.doc";
if (FileName != "")
{
System.IO.FileInfo file = new System.IO.FileInfo(path + dateTimeStamp + "SiteReservation.doc");
if (file.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=SiteReservation.doc");
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
//Response.End();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
else
{
Response.Write("This file does not exist.");
}
}
你有没有试过做任何事情? –
是的我已经写了一个代码,但音乐保存。文件格式不是.mp3 我写我的代码问题 –
您正在做的test2子字符串是从文件名中修剪.mp3。如果是这样那么这是你的问题。传递给内容处置的文件名部分的值是您将在浏览器中看到的值。如果没有扩展名,它会以.file的形式下载。 – ThatChris