Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 付款后允许预付定金_Php - Fatal编程技术网

Php 付款后允许预付定金

Php 付款后允许预付定金,php,Php,我对如何允许在付款后下载file.zip感到困惑。如果我将他们重定向到文件放在服务器中的下载页面,他们可以轻松地再次下载该文件,或者他们可以将该链接传递给任何人 有什么建议吗 不要使用文件的直接链接-使用提供文件作为下载的PHP文件,但仅当找到某个会话变量(在付款过程确认中创建)时使用。不要使用文件的直接链接-使用提供文件作为下载的PHP文件,但仅当找到某个会话变量时使用(在付款确认过程中创建)就像前面提到的@SmokeyHP一样,只需通过PHP输出文件,而不是直接链接到它 <?php $

我对如何允许在付款后下载file.zip感到困惑。如果我将他们重定向到文件放在服务器中的下载页面,他们可以轻松地再次下载该文件,或者他们可以将该链接传递给任何人


有什么建议吗

不要使用文件的直接链接-使用提供文件作为下载的PHP文件,但仅当找到某个会话变量(在付款过程确认中创建)时使用。

不要使用文件的直接链接-使用提供文件作为下载的PHP文件,但仅当找到某个会话变量时使用(在付款确认过程中创建)

就像前面提到的@SmokeyHP一样,只需通过PHP输出文件,而不是直接链接到它

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>

通过这种方式,您可以完全控制谁下载什么。当然,根据文件大小,您可能希望将文件分割为较小的块。您不希望每隔5秒在服务器内存中缓冲40 MB的文件。对于较大的文件,您可以使用以下方法:

<?php
$file = fopen("file.dat", "r");
while (!feof($file)) {
    echo fgets($file);
}
fclose($file);

?>

就像前面提到的@SmokeyHP一样,只需通过PHP输出文件,而不是直接链接到它

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>

通过这种方式,您可以完全控制谁下载什么。当然,根据文件大小,您可能希望将文件分割为较小的块。您不希望每隔5秒在服务器内存中缓冲40 MB的文件。对于较大的文件,您可以使用以下方法:

<?php
$file = fopen("file.dat", "r");
while (!feof($file)) {
    echo fgets($file);
}
fclose($file);

?>

  • 将.zip文件放在Web服务器外部
  • 使用一些规则保护.zip URL[例如登录并购买资源]
  • 将.zip URL与读取实际二进制文件并将其转发给用户的操作相关联[这里有大量示例]
  • 将.zip文件放在Web服务器外部
  • 使用一些规则保护.zip URL[例如登录并购买资源]
  • 将.zip URL与读取实际二进制文件并将其转发给用户的操作相关联[这里有大量示例]

  • 你不能给出物理文件的url。你应该给出你的服务的链接,以检查用户是否可以下载文件。但还有很多。事实上,这是一个相当大的主题。你不能给出物理文件的url。你应该给出你的服务的链接,以检查用户是否可以下载文件。但还有很多。事实上,这是一个相当大的主题。oo..是的,我正在考虑下载文件的一些令牌…Thnxxxxxxxx令牌很简单。您需要跟踪您的用户会话。使用变量“status”或其他内容,查看是否已开始下载或是否允许用户下载。这是基本的php.oo..是的,我正在考虑s下载文件的ome令牌…THNXXXXXX令牌很简单。您需要跟踪用户会话。使用变量“status”或其他内容,查看下载是否已开始或是否允许用户下载。这是基本php。