title: Code to download file from sharepoint 2007 document library. Please correct me in this code
body: <p>I am using this code to download file on button click.
  Code works perfectly but only one problem exists that code executes perfectly only for first time, means for first when I click on download button file gets downloaded but when I click on download button second time nothing happens.
  So to execute code again I need to do page refresh(i.e F5) once refresh is done then again code execute perfectly but only for first click 
  Please correct me what I am doing wrong in this code so that code would work perfectly</p>
  
  <pre><code>try
  
  {
  
  int flag=0;
  
  SPSite site = new SPSite(sharePointURL); 
  
  SPWeb web = site.OpenWeb(); 
  
  web.AllowUnsafeUpdates=true;
  
  string strContentType=""; 
  // docLib is the name of document library
  SPFolder folder = web.GetFolder("docLib");
  
  SPFileCollection files=folder.Files;
  //"docLib" is name of document library and testFile.doc is the name of file
  string url=sharePointURL+"/"+"docLib"+"/"+"testFile.doc"
  
  SPFile tempFile = web.GetFile(url);
  
  //Get the extension of File.
  
  string []fext=this.filename[0].Split('.');
  
  byte []obj=(byte[])tempFile.OpenBinary();
  
  
  // Get the extension of File to determine the file type
  string casestring="";
  if(fext.Length&gt;1)
  {
   casestring= fext[fext.Length-1];
  }
  //set the content type of file according to extension
  switch(casestring)
  
  {
  
  case "txt": 
  
  strContentType = "text/plain";
  
  break;
  
  case "htm" : strContentType = "text/html";
  
  break;
  
  case "html" : strContentType = "text/html";
  
  break;
  
  case "rtf" : strContentType = "text/richtext";
  
  break;
  
  case "jpg" : strContentType = "image/jpeg";
  
  break;
  
  case "jpeg": strContentType = "image/jpeg";
  
  break;
  
  case "gif" : strContentType = "image/gif";
  
  break;
  
  case "bmp" : strContentType = "image/bmp";
  
  break;
  
  case "mpg" : strContentType = "video/mpeg";
  
  break;
  
  case "mpeg": strContentType = "video/mpeg";
  
  break;
  
  case "avi" : strContentType = "video/avi";
  
  break;
  
  case "pdf" : strContentType = "application/pdf";
  
  break;
  
  case "doc" : strContentType = "application/msword";
  
  break;
  
  case "dot": strContentType = "application/msword";
  
  break;
  
  case "csv" : strContentType = "application/vnd.msexcel";
  
  break;
  
  case ".xls": strContentType = "application/vnd.msexcel";
  
  break;
  
  case ".xlt": strContentType = "application/vnd.msexcel";
  
  break;
  
  default : strContentType = "application/octet-stream";
  
  break;
  
  }
  
  Response.ClearContent();
  
  Response.ClearHeaders();
  
  Response.AppendHeader("Content-Disposition", "attachment; filename= "+filename[0]);
  
  Response.ContentType = strContentType;
  //Check that the client is connected and has not closed the connection after the request
  if(Response.IsClientConnected)
  
  Response.BinaryWrite(obj);
  
  Response.Flush();
  
  Response.Close();
  
  
  }
  
  catch(Exception ex)
  
  {
  
  } 
  </code></pre>
  
  <p>Thanks 
  Rushikesh</p>