关于在线 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 一样