php 后端 接收下载,PHP通过header方式下载文件教程_后端开发
时间: 2023-08-01 07:11:08 浏览: 92
在 PHP 后端,可以使用 header 函数实现文件下载。
首先,需要确定要下载的文件的路径和文件名。假设文件在服务器上的路径为 "/path/to/file/filename.ext",可以使用以下代码实现下载:
```php
$file = '/path/to/file/filename.ext';
// 设置响应头,告诉浏览器下载文件
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Length: ' . filesize($file));
// 读取文件内容并输出到浏览器
readfile($file);
```
解释一下上面的代码:
1. `$file` 变量存储了要下载的文件的路径和文件名。
2. `header('Content-Type: application/octet-stream')` 设置响应头,告诉浏览器下载文件。`application/octet-stream` 表示二进制流数据,通常用于下载文件。
3. `header('Content-Disposition: attachment; filename="' . basename($file) . '"')` 设置响应头,指定文件名和下载方式。`attachment` 表示以附件方式下载,`basename($file)` 获取文件名部分。
4. `header('Content-Length: ' . filesize($file))` 设置响应头,指定文件大小。`filesize($file)` 获取文件大小。
5. `readfile($file)` 读取文件内容并输出到浏览器。
注意事项:
1. 下载文件前,不要输出任何内容,包括空格、换行符等。
2. 如果文件名包含中文字符,需要使用 `urlencode` 函数进行编码。
3. 如果文件比较大,可以使用 `fread` 和 `fwrite` 函数分块读取和输出,避免内存溢出。
希望这个教程对你有帮助!
阅读全文