gpt4 book ai didi

php - PHP-从URL下载文件

转载 作者:行者123 更新时间:2023-12-02 22:25:37 25 4
gpt4 key购买 nike

在我的项目中,我需要下载一个文件,并且需要使用PHP。
Google的所有结果最终都没有太大帮助。

合并2个结果中的代码后,我最终尝试:

function downloadFile($url, $filename) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);

header('Content-Description: File Transfer');
header('Content-Type: audio/*');
header("Content-Disposition: attachment; filename=\"$filename\"");
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($data));
readfile($data);
}

结果是一个音频文件,重10KB(应为3.58MB)。
此代码与问题中被建议重复的代码不同-这里有一部分 curl函数和 header ,而问题的答案只有一堆 header 。

使用VLC打开文件时-出现以下错误:

另外,我尝试使用:
file_put_contents($filename, file_get_contents($url));

这导致将文件下载到PHP文件所在的路径-这不是我想要的-我需要将文件下载到Downloads文件夹。

所以现在我基本上迷路了。
什么是下载文件的适当方式?

谢谢!

最佳答案

感谢Google和大量实验,我成功做到了。
最终代码:

function downloadFile($url, $filename) {
$cURL = curl_init($url);
curl_setopt_array($cURL, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FILE => fopen("Downloads/$filename", "w+"),
CURLOPT_USERAGENT => $_SERVER["HTTP_USER_AGENT"]
]);

$data = curl_exec($cURL);
curl_close($cURL);
header("Content-Disposition: attachment; filename=\"$filename\"");
echo $data;
}

关于php - PHP-从URL下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com