脚本
我有一个文件上传器,我可以上传文件。还有另一个选项可以更新以前上载的文件。我也可以使用一些链接查看上传的文件。
要求
一切正常。假设我上传了文件。我可以使用链接查看此文件。然后我用另一个名为fileb的文件更新了该文件。我可以使用相同的链接查看此文件。这里的问题是,如果我第二次使用相同的文件名上传,就会有错误。因此,我按照以下方式修改了代码。
if(file_exists($target_fileCadEdit)){
unlink($target_fileCadEdit);
move_uploaded_file($_FILES["fileCad"]["tmp_name"], $target_fileCadEdit);
}else{
move_uploaded_file($_FILES["fileCad"]["tmp_name"], $target_fileCadEdit);
}
问题
将删除旧文件,并在同一位置正确更新新文件(注意,旧文件和新文件的文件名相同)。但当我使用相同的链接查看更新的文件时,它仍然显示旧文件。我实际检查了上传的文件,旧文件已经不在了,并用新文件进行了更新。但是当我使用链接单击视图时,它仍然显示旧文件。不确定程序从何处访问该已删除文件。
有人能帮忙吗?
编辑
发现问题是由于浏览器缓存。我尝试手动删除浏览器缓存,然后再次尝试查看文件,现在它显示服务器中存在的实际文件。
现在有问题
现在的问题是,如何在运行脚本时自动清除缓存。一些建议是尝试使用标题标签。但我担心,如果配置错误,可能会影响性能。所以我用了另一种方法
clearstatcache();
. 但它似乎也不起作用。现在请看我的密码
if(file_exists($target_fileCadEdit)){
unlink($target_fileCadEdit);
clearstatcache();
move_uploaded_file($_FILES["fileCad"]["tmp_name"], $target_fileCadEdit);
clearstatcache();
}else{
move_uploaded_file($_FILES["fileCad"]["tmp_name"], $target_fileCadEdit);
}
这是查看文件的链接。它使用了许多动态变量
<td class="viewEditTd">
<a href="<?php echo $locationForViewLink; ?><?php echo $slash; ?><?php echo $_POST['searchInput']; ?><?php echo $cadguiFolder; ?><?php echo $row['cadRevision']; ?><?php echo $slash; ?><?php echo $row['cadFile']; ?>" target="_blank" class="whiteLink"><span class="
glyphicon glyphicon-folder-open" aria-hidden="true"></span> View </a>
</td>
有线索吗?