如何为可下载文件设置临时过期链接

时间:2017-04-26 作者:How Seek

我们需要一个插件或代码。下载链接的有效期在一小时后到期。就像当任何人点击下载链接时,它会生成一个字符串,并在24小时后将其保存到db,该下载链接字符串将过期。如果有人再次访问同一下载链接,请将其重定向到帖子区。请告诉我如何在wordpress上设置

1 个回复
SO网友:Aishan

Option 1: 如果只有一个下载文件/路径,那么可以使用htaccess实现这一点。但如果你有更多的文件可供下载。为每个下载请求创建一个临时文件并使用htaccess不是一个好主意。

$path="uploads/";
                  $actualfilename=$path.$filename;
                  $fakefilename="downloadfile.pdf";
                   if($typeofview=="download") {
                          @readfile($actualfilename);
                        header(\'Content-type: application/pdf\');
                        header(\'Content-Disposition: attachment; filename="\' . $fakefilename . \'"\');
                        header(\'Content-Transfer-Encoding: binary\');
                        header(\'Content-Length: \' . filesize($actualfilename));
                        header(\'Accept-Ranges: bytes\');
                        exit;
将此添加到。htaccess文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule fakefile.php(.*)$ orignalfile.php?$1 [L,QSA]
Option 2: 相反,为每个文件创建一个符号链接()是一个更好的主意。这将节省磁盘空间负载并降低服务器负载。

在用户会话之后命名符号链接是一个不错的主意。更好的方法是生成一个随机符号链接名称&;与会话关联,以便脚本可以处理每个会话的多次下载。您可以使用session\\u set\\u save\\u handler()(link) 并注册一个自定义读取函数,用于检查过期会话,并在会话过期时删除符号链接。

相关推荐

更改wp-admin/plugins.php上统计的插件数量

我已成功地使用从插件页面隐藏我的插件$wp_list_table 然而,顶部的分页仍然将插件列为“所有(3)”等。我成功地改变了$wp_list_table 的数组_pagination_args = total_items.但它仍然在页面顶部呈现插件-“全部(3)”。有什么办法可以解决这个问题吗?我找到了WP_Plugins_List_Table::prepare_items()具有全局$totals 变量,但我不确定我将如何改变这一点,在这个函数中$totals = array(); fore