Question

My code

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();

        }
    }

When i debugging the uploaded data converted to binary data and saved in Database.I can download from local client.but not working when downloading from server side.

Was it helpful?

Solution

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();



    }
}

add this and make sure that the unique names are distinct.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top