我需要将服务器端的php.ini配置(参数是allow_url_fopen)从off更改为on但我不能访问php.ini文件,我想通过php代码进行操作但我不知道wat要做什么以及在哪里粘贴该代码(我应该把它放在我用来下载文件的标题之前???)
header('Content-disposition: attachment; filename=' . basename($fileName));
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Description: File Transfer');
ob_clean();
flush();
readfile($finalFileName);
exit;
提前感谢
答案 0 :(得分:4)
不建议使用该选项。 相反,你应该使用curl库。
function getUrlContent($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
答案 1 :(得分:0)
有一个名为 ini_set 的函数可以动态设置php ini值。但在您的情况下,它需要您的服务器的适当许可才能使用此功能。您可以联系您的托管服务提供商。
最佳解决方案是使用 cURL ,因为它已被大多数服务器启用。
答案 2 :(得分:0)
您可以使用ini_set()
更改属性,ini_get()
可以查看这些属性,试试这个:
echo ini_get('allow_url_fopen');
if (!ini_get('allow_url_fopen')) {
ini_set('allow_url_fopen', 1);
}
echo ini_get('allow_url_fopen');
你也可以尝试.user.ini
来改变它,就像php.ini的.htaccess一样,但是你的sysAdmin可以拒绝任何这些东西,所以像其他人说的那样查看curl
答案 3 :(得分:0)
你想在这里实现什么?如果您只是想在本地链接上强制下载,请使用文件系统路径(如readfile('。/ filename.ext'))而不是URL。如果您必须强制下载下载文件,请按照Soaica Mircea的建议进行操作。
由于某种原因,allow_url_fopen设置为off,因为它可能会产生难以预测的结果。