我有一个关于制作下载系统的问题。我过去做过一个,但它非常基本。我所做的是将下载的文件名添加到数据库中:
id | title | filename
---|-----------|--------------
1 | Something | something.zip
然后,当用户访问 download.php?id=1 时,他将被简单地重定向到:/path/to/downloads/something.zip,使用:
header('Location: /path/to/downloads/something.zip');
这会导致浏览器自动开始下载。但是这样做可以吗?我正在使用 Codeigniter 构建一个下载系统,并且有一个下载助手可用。要提供下载,我需要:
$data = file_get_contents('/path/to/downloads/something.zip');
$name = 'Something';
force_download($name, $data);
我注意到,由于 file_get_contents(),与简单的重定向相比,这种方式的下载速度较慢。我有一些大型下载(最大 1 GB)。你有什么建议?我应该使用 Codeigniter 下载帮助程序,直接使用重定向到文件还是其他方式?