关于在线 pdf 下载时的注意事项


    昨天做了一个pdf 在线下载, 通过ASP.net来传送pdf 到浏览器,开始通过下面的办法

        Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + uid + ".pdf\"");
         Response.AddHeader("Content-Type", "application/pdf");


        Response.TransmitFile(Server.MapPath(@"/pdf/") + file);
       Response.End();

   发现搜索引擎对这种办法非常不友好,不爬取,也不收录,尝试了好多办法,最后修改了header 的头,完全模拟了静态pdf文件的header

        Response.AddHeader("Content-Type", "application/pdf");
         Response.AddHeader("Accept-Ranges", "bytes");

         FileInfo fi = new FileInfo(filePath);
         Response.AppendHeader("ETag", GetFileETag(filePath, fi.LastWriteTime));//重要:续传必须
         Response.Cookies.Clear();
         Response.Cache.SetLastModified(fi.LastWriteTime);
         Server.Transfer(url);

         论文网的效果   http://www.lw23.com/pdf/535445f7-8d92-4940-a0b3-6c12c8217693.pdf   的头部就静态的pdf 一样
   

  
posted @ 2009-09-22 10:13  曾哲  阅读(578)  评论(0编辑  收藏  举报