强制浏览器每次都链接到pdf的新副本?

问题描述

假设我有类似的东西

<a href="https://example.com/schedule.pdf">download me</a>

schedule.pdf文件在后端经常更改,我希望用户始终获取最新副本。

此页面处于静态,因此在URL末尾添加随机?[somerandomnumber]是不可行的,并且在任何情况下,页面本身都可能会缓存在浏览器中,因此用户不会必定会看到带有链接的页面的新版本。

我可以在该语句中(或至少在附近,内联)添加任何内容,以确保它下载pdf的新副本吗?

我正在处理超出控制范围的过时CMS,因此我无法将任何内容推到meta标头中,甚至无法将CSS文件混为一谈。我正在寻找内联解决方案。我可以在其中投放任何特殊的OnClick魔术吗?

此外,是否有任何与浏览器无关的方法可以确保将https://example.com/schedule.pdf放入浏览器的URL栏中将获得最新的副本,即使当前本地浏览器缓存中有内容呢?

实际上,我确实可以控制服务器上的Apache配置,因此可以在系统范围内进行更改。

PDF是我唯一要确保最新的内容。我不是要确保未缓存每个对象或页面,也不是要强制下载PDF而不是在浏览器中查看。我只是想确保当您单击该链接或手动输入文件的URL时,即使您的本地浏览器缓存中存在某些内容,您也可以获得该文件的最新副本。

解决方法

-----使用PHP的自动更新下载的完整代码链接-----

------如何使用PHP制作新的/自动更新的下载链接-----

在此php文件的相同位置创建一个名为“ pdf_folder”的文件夹,并在其中设置PDF文件,

您可以从此处下载代码:https://eetsceeck.cf/pdf_script/

这是完整的代码:

<?php


// ============================================= LEAVE ME ALONE DONT TOUCH ME 
// DEFINE DEFAULT VARY (AVOID UNDEFINE VARIABLES ERRORS)
$PDF_FOR_DOWNLOAD_FILE_NAME = "";


// DEFINE THE PATH OF THE PDF FOLDER
//
$PDF_Folder_location = "./pdf_folder/";
// ============================================= LEAVE ME ALONE DONT TOUCH ME 




// USE QUERY TO LOOK FOR THE LATEST FILE CREATED BY DATE AND TIME FUNCTION
// AS WELL FETCH THE FILE NAME
//
FUNCTION Get_latest_file ($PDF_Folder_location) {
    

// ARRANGE PDF IN ARRAY FOR SORTING

$OPEN_dir = opendir($PDF_Folder_location); // = > PDF directory


// WHILE LOOP - IF THERE ARE PDF'S GET THEM //=>
// 
    WHILE (false !== ($PDF_file = readdir($OPEN_dir))) {
    if (strstr($PDF_file,".pdf"))
        
    // IF EXIST EXECUTE A LIST BY DATE/TIME - FETCH TO ARRAY ALL INFO DATE/TIME=>NAME
    // ARRAY
    $PDF_file_list[] = DATE("YmdHis ",FILEMTIME($PDF_Folder_location.$PDF_file)).$PDF_Folder_location.$PDF_file; 

} // <= END OF WHILE LOOP

// SORT RESULTS OF ARRAY
//
rsort($PDF_file_list);
// 
// END OF FETCH


// DEFINE VARY FOR FILENAME ONLY TO BE EXECUTED AS LINK PATH TO FILE
echo $PDF_FOR_DOWNLOAD_FILE_NAME = BASENAME($PDF_file_list[0]); // (USE ME FOR YOUR HTML LINK TO YOUR PDF DOWNLOAD BUTTON)

} // END OF FUNCTION FOR LATEST PDF FILE

?>


<!doctype html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">
<title>PDF file download</title>


<style>
html,body,#container {
   height: 100%;
   width: 100%;
}
body {
   background-color: #FFFFFF;
   color: #000000;
   font-family: Arial;
   font-size: 13px;
   font-weight: normal;
   line-height: 1.1875;
   margin: 0;
   overflow-x: hidden;
   overflow-y: hidden;
   padding: 0;
}
#PDF_file_download_btn {
   -webkit-appearance: none;
   background-color: #000000;
   background-image: none;
   border: 0px solid #2E6DA4;
   color: #FFFFFF;
   font-family: "Roboto Condensed";
   font-size: 21px;
   font-weight: normal;
   line-height: 60px;
   margin: 0;
   text-align: center;
   text-decoration: none;
   vertical-align: top;
}
#PDF_file_download_btn:hover {
   -moz-transition: background-color 100ms linear 0ms;
   -webkit-transition: background-color 100ms linear 0ms;
   background-color: #FF0000;
   transition: background-color 100ms linear 0ms;
}
#PDF_file_download_btn {
   -moz-transition: all 100ms linear 0ms;
   -webkit-transition: all 100ms linear 0ms;
   transition: all 100ms linear 0ms;
}
#container {
   background-color: #FBFBFB;
   background-image: none;
}
#container {
   height: 330px;
   left: 0px;
   overflow: hidden;
   position: absolute;
   text-align: center;
   top: 0px;
   width: 100%;
   z-index: 1;
}
#container_Container {
   margin-left: auto;
   margin-right: auto;
   position: relative;
   text-align: left;
   width: 800px;
}
#PDF_file_download_btn {
   height: 60px;
   left: 225px;
   position: absolute;
   top: 135px;
   width: 350px;
   z-index: 0;
}
a {
   color: #0000FF;
   text-decoration: underline;
}
a:visited {
   color: #800080;
}
a:active {
   color: #FF0000;
}
a:hover {
   color: #0000FF;
   text-decoration: underline;
}
input:focus,textarea:focus,select:focus {
   outline: none;
}
.visibility-hidden {
   visibility: hidden;
}
h1,.h1 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 32px;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
h2,.h2 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 27px;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
h3,.h3 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 24px;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
h4,.h4 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 21px;
   font-style: italic;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
h5,.h5 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 19px;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
h6,.h6 {
   background-color: transparent;
   color: #000000;
   display: inline;
   font-family: Arial;
   font-size: 16px;
   font-weight: bold;
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   text-decoration: none;
}
.CustomStyle {
   background-color: transparent;
   color: #2E74B5;
   font-family: "Courier New";
   font-size: 16px;
   font-weight: bold;
   text-decoration: none;
}
</style>

</head>
<body>
   <div id="container">
      <div id="container_Container">
     





<!-- i am here for test purposes only you can delete me no issue with that -->   
<?php
echo '<br>';
echo '<br>';
echo 'i am your newest pdf file and my name is:';
echo '<br>';
echo Get_latest_file($PDF_Folder_location); 
?>




<br>
<br>

<!--                                            i am here to echo the whole 
                                                function so your file name 
                                                will be available to download 
                                                so you cannot delete me,you need me!
-->
<a id="PDF_file_download_btn" href="./pdf_folder/<?php echo Get_latest_file($PDF_Folder_location); ?>" title="My dummy pdf file - download me">

Dummy PDF file Download

</a>
      </div>
   </div>
</body>
</html>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...