使用thinkphp6 根据完整url 以文件流方式下载文件到浏览器 并且修改下载文件名
时间: 2023-08-06 13:02:02 浏览: 174
根据url下载文件
好的,可以使用以下代码实现:
```php
public function downloadFile()
{
$url = 'http://example.com/file.pdf'; // 完整的文件url
$filename = 'new_filename.pdf'; // 下载文件的新名称
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile($url);
}
```
解释一下代码:
- `Content-Type: application/octet-stream` 表示以二进制流的形式下载文件;
- `Content-Disposition: attachment; filename="' . $filename . '"'` 表示显示下载对话框,并设置文件名;
- `readfile($url)` 读取文件并输出到浏览器。
注意事项:
- 文件必须是可以公开访问的;
- 如果文件比较大,可能会导致服务器内存占用过高,可以使用分段下载的方式解决。
阅读全文