string filepath = Server.MapPath("../data/data.pdf");
//得到文件路径
string filename = GetFileName(filepath);
//得到文件名
//=========下面就看不懂了======================================================
FileStream filestream = new FileStream(filepath,FileMode.Open);
long filesize = filestream.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition","attachment; filename=\"" + filename + "\";");
Response.AddHeader("Content-Length",filesize.ToString());
//设置相应头和要保存的文件名byte[] filebuffer = new byte[filesize];
filestream.Read(filebuffer,0,(int)filesize);
Response.BinaryWrite(filebuffer);
//下载文件Response.End();

解决方案 »

  1.   

    FileStream filestream = new FileStream(filepath,FileMode.Open);//打开文件,为下一句做准备
    long filesize = filestream.Length;//取得文件的长度
    //下面三行是为了能让客户端浏览器正确识别这个文件的类型和文件大小
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition","attachment; filename=\"" + filename + "\";");
    Response.AddHeader("Content-Length",filesize.ToString());//将文件中的数据发送到客户端
    byte[] filebuffer = new byte[filesize];
    filestream.Read(filebuffer,0,(int)filesize);
    Response.BinaryWrite(filebuffer);//结束这个请求
    Response.End();
      

  2.   

    你的代码出错了     string filename = GetFileName(filepath);  有问题