我的代码
protected void grdFiles_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.DownloadAttachmentCommandName)
{
GridDownloadAttachmentCommandEventArgs args = e as GridDownloadAttachmentCommandEventArgs;
string fileName = args.FileName;
int attachmentId = (int)args.AttachmentKeyValues["ProjectFileId"];
ProTrakEntities objEntity = new ProTrakEntities();
ProjectFile objFile = (from type in objEntity.ProjectFiles where type.ProjectFileId == attachmentId select type).First();
string filename = objFile.FileName;
string Filetype = objFile.FileType;
byte[] binaryData = (byte[])objFile.FileData;
//byte[] binaryData = (byte[])data.Tables[0].Rows[0]["BinaryData"];
// Response.AppendHeader("Content-Disposition", "attachment; filename = "+filename);
// Response.AppendHeader("Content-Length", filename.Length.ToString());
//Response.ContentType = Filetype;
//Response.WriteFile(Server.MapPath("Uploads/"+filename));
//Response.Flush();
//Response.Close();
//Response.End();
// grdFiles.Items[0].FireCommandEvent(RadGrid.DownloadAttachmentCommandName, parameters);
Response.Clear();
Response.ContentType = Filetype;
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(binaryData);
Response.End();
}
}
调试时将上传的数据转换为二进制数据并保存在数据库中。我可以从本地客户端下载。但不工作时,从服务器端下载。
protected void grdFiles_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.DownloadAttachmentCommandName)
{
RadAjaxManager Manager = new RadAjaxManager();
Manager.EnableAJAX = false;
GridDownloadAttachmentCommandEventArgs args = e as GridDownloadAttachmentCommandEventArgs;
string fileName = args.FileName;
int attachmentId = (int)args.AttachmentKeyValues["ProjectFileId"];
ProTrakEntities objEntity = new ProTrakEntities();
ProjectFile objFile = (from type in objEntity.ProjectFiles where type.ProjectFileId == attachmentId select type).First();
byte[] binaryData = (byte[])objFile.FileData;
//grdFiles.DataSource = objFile;
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(binaryData);
Response.Flush();
Response.Close();
Response.End();
}
}
添加这个,并确保唯一名称是不同的