【问题标题】:Size not showing while downloading files from my site [duplicate]从我的网站下载文件时未显示大小[重复]
【发布时间】:2019-09-01 03:54:32
【问题描述】:

请看下面的截图。当有人从我的网站下载文件时,没有显示下载大小。因此,用户无法知道剩余多少,大小是多少。有人可以帮助我或告诉任何想法来解决这个问题吗?这是服务器的问题吗?或者我必须输入任何代码或其他东西?

【问题讨论】:

  • 很可能,您的网站没有在标题中发送文件大小供您下载。你对此做什么取决于你的网站和下载代码 - 这里没有任何东西可以诊断它。
  • 我现在注意到您在两天前提出了这个问题并得到了这个答案,您接受了。你怎么又问了?
  • @MikeW 但实际上并没有帮助。该答案仅适用于一个文件。我的网站有很多这样的下载。
  • 那你应该解释一下,而不是问同样含糊的问题。

标签: php html


【解决方案1】:

您应该从您的服务器正确发送标头 最好看看这个:- http://php.net/manual/en/function.readfile.php

例子

<?php
$file = 'yourfile.apk';

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

【讨论】:

  • 但是我的网站有很多这样的链接。
  • 创建一个像 download.php 这样的页面并将此代码粘贴到那里并将文件名作为 GET 或 POST 参数传递,以便您的 download.php 将知道要发送的文件,并且一切都将像 $文件名 = $_GET['file'];还将所有文件保存在同一目录中,以便您可以轻松访问它们。此外,如果您的文件不在 download.php 的根目录中,您可以在代码中链接它。例如,如果文件位于 download.php 的文件夹中,则 $file = 'files/'.$_GET['file'];
  • @ 这真的很有帮助。还有一个疑问。什么是文件扩展名是 .exe 或类似的东西?我可以使用相同的代码吗?只更改文件名。好吗?
  • 当然可以。但不要忘记清理 get 参数。您可以使用 pathinfo() 函数,例如 pathinfo($_GET['file']) ,它还将文件的扩展名和请求文件的名称分开。有关更多信息,您应该查看文档的第一个示例,该示例纯粹描述了如何使用此功能php.net/manual/en/function.pathinfo.php
  • 好的。谢谢。有没有这个的wordpress插件??
猜你喜欢
  • 2014-06-24
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 2020-05-30
  • 2013-04-05
  • 1970-01-01
相关资源
最近更新 更多