文件下载方法
方法一 
 private void FileDownload(string FullFileName)
    {
        FileInfo DownloadFile = new FileInfo(FullFileName);
        Response.Clear();
        Response.ClearHeaders();
        Response.Buffer = false;
        Response.ContentType = "application/octet-stream";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
        Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
        Response.WriteFile(DownloadFile.FullName);
        Response.Flush();
        Response.End();
    }
之后在按钮处,引用该该函数。如:  FileDownload(Server.MapPath("." + "/file/博客需求分析.rar"));

方法二
按钮下代码:
 System.IO.FileStream r = new System.IO.FileStream(Server.MapPath("." + "/file/博客需求分析.rar"), System.IO.FileMode.Open);
       // 设置基本信息
        Response.Buffer = false;
        Response.AddHeader("Connection", "Keep-Alive");
        Response.ContentType = "application/octet-stream";
       // Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + Server.UrlEncode(fileName) + "\"");
       // Response.AddHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName("博客需求分析.rar"));
        Response.AddHeader("Content-Disposition", "attachment;filename=\"" + Server.UrlEncode("博客需求分析.rar") + "\"");
        Response.AddHeader("Content-Length", r.Length.ToString());
        
        while (true)
        {
            //开辟缓冲区空间
            byte[] buffer = new byte[1024];
            //读取文件的数据
            int leng = r.Read(buffer, 0, 1024);
            if (leng == 0)//到文件尾,结束
                break;
            if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
                Response.BinaryWrite(buffer);
            else
            {
               // 读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
                byte[] b = new byte[leng];
                for (int i = 0; i < leng; i++)
                    b[i] = buffer[i];
                Response.BinaryWrite(b);
            }
        }
        r.Close();//关闭下载文件
        Response.End();//结束文件下载

===============================================
在ASP.NET 2.0中,提供了更方便的配置文件访问的类,具体可以到 System.Configuration 名称空间下进行查看。本文提供一种在开发过程中常用的得到数据库字符串的方法,为方便使用,写成一个方法进行调用:

public string GetConnectionString( string _connectionStringsName )
{
  System.Configuration.ConnectionStringSettingsCollection config = System.Configuration.ConfigurationManager.ConnectionStrings;
  for (int i = 0 ; i < config.Count ; i++)
  {
    if (config[i].Name.Equals(_connectionStringsName, StringComparison.OrdinalIgnoreCase))
      return config[i].ToString();
  }
  return String.Empty;
}
如果web.config配置如下:

<connectionStrings>
    <add name="ConnectionString1" connectionString="Persist Security Info=False;User ID=sa;Password=;Initial Catalog=DataBase1;Server=(local);" providerName="System.Data.SqlClient"/>
    <add name="ConnectionString2" connectionString="Persist Security Info=False;User ID=sa;Password=;Initial Catalog=DataBase2;Server=(local);" providerName="System.Data.SqlClient"/>
</connectionStrings> 
如果写成静态类方法,则可以使用下面的方法进行调用:

string ConnectString = XianhuiMengUtil.GetConnectionString("ConnectionString1");
另外,如果在遍历时进行输出,则可以看到多出来一个配置项,那是因为machine.config里已经默认定义理一个数据库连接,内容如下:

<connectionStrings>
  <add name="LocalSqlServer" connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

这就是许多网友在论坛上经常会问:为什么我的程序会调用 SQLEXPRESS 数据库的原因,如果你的数据库配置不正确,或者无法打开时,就会使用 SQLEXPRESS 数据库。




上传文件:

            string fullfilename = this.File1.PostedFile.FileName;
            string filename = fullfilename.Substring(fullfilename.LastIndexOf("\\")+1);
            string type = fullfilename.Substring(fullfilename.LastIndexOf(".")+1);
            if(type=="jpg"||type=="bmp"||type=="gif")
            {   
                filename =GetRandomNum(4,1,9999).ToString()+"."+type; 
                this.File1.PostedFile.SaveAs(Server.MapPath("photos")+"\\"+filename);
                
            }  
            else
            {
                Response.Write("<script>window.alert('图片格式不对!')</script>");
            }
            classes.PictureInfo info = new oblog.classes.PictureInfo();
            info.YongHuID = id;
            info.PictureName = TextBox1.Text;
            info.Bak = "";
            info.PicturePath = "/oblog/photos/" + filename;
            info.PictureTypeID = DropDownList1.SelectedValue.ToString();
                
                if(pp.AddPicture(info))
                    {   
                       
                        yonghucontrolsBind();
                    
                
                        Response.Write("<script>window.alert('上传成功!')</script>");
                    }
                else
                    {
                        Response.Write("<script>window.alert('上传失败!')</script>");
                    }
                Response.Redirect("tupianmags.aspx?id="+id);
                
            
                // string radom = GetRandomNum(4,1,9999).ToString();
//取得上传文件的各种属性。 
fname.Text=myFile.PostedFile.FileName; 
fenc.Text=myFile.PostedFile.ContentType ; 
fsize.Text=myFile.PostedFile.ContentLength.ToString(); 

======================================================================


//检查上传文件不为空
   if(File1.PostedFile!=null)
   {     
    string nam = File1.PostedFile.FileName ;
    //取得文件名(抱括路径)里最后一个"."的索引
    int i= nam.LastIndexOf(".");
    //取得文件扩展名
    string newext =nam.Substring(i);
    //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
    DateTime now = DateTime.Now; 
    string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString(); 
    //保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
    //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
    File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext)); 

    this.HyperLink1.NavigateUrl  ="upload"+newname+newext;

    //得到这个文件的相关属性:文件名,文件类型,文件大小
    //fname.Text=File1.PostedFile.FileName;
    //fenc.Text=File1.PostedFile.ContentType ;
    //fsize.Text=File1.PostedFile.ContentLength.ToString();
   }