2012-03-30 11 views
0

サーバー側でphp.iniの設定を変更する必要があります(パラメータはallow_url_fopen)がオフからオンになりますが、php.iniファイルにアクセスできず、PHPコードを使用したいしかし、私はそれはallow_url_openがある必要があります

+0

php.iniファイルは、実行時にwebserver/apacheによって解析されます。あなたのホストが機能を許可していないか、セーフモードがオンの場合、それを変更することはできません。あなたのコード例がローカルであれば関数を必要としないかもしれないが、ほとんどのホストはカールを許容するように考えています –

+0

デフォルトではallow_url_fopenはオンになっていますが、その禁止されている可能性があります、別の解決策は、あなたのルートディレクトリにphp.iniを入れて、あなたが望むように変更することです。私はいくつかのグラフィックスのために私のソリューションの1つでそれを使用し、仕事をしました。運が良ければ –

答えて

4

に事前にthanksss

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; 

(私は???ファイルをダウンロードするために使用していますヘッダの前に置く必要があります)を行う方法を行うには、ワットを知らない、どこでそのコードを貼り付けそのオプションを使用することは推奨されません。 代わりに、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; 
} 
+0

[link:allow_url_fopen]のセキュリティに関する情報(http://phpsec.org/projects/phpsecinfo/tests/allow_url_fopen.html) – ggrandes

0

場でPHPのini値を設定するini_setという名前の関数があります。しかし、あなたのケースでは、この機能を使用するにはサーバーからの適切な許可が必要です。ホスティングプロバイダに連絡することができます。

最も良い解決策は、ほとんどのサーバーで有効になっているcURLです。

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

0

ここでは何を達成しようとしていますか?ローカルリンク上で強制的にダウンロードしようとしているだけの場合は、URLの代わりにファイルシステムパス(readfile( './ filename.ext'))を使用します。ダウンロードしたファイルを強制的にダウンロードする必要がある場合は、Soaica MirceaがCURLを提案して使用するようにしてください。

allow_url_fopenは、予測が困難な結果を生じる可能性があるため、理由によりオフに設定されています。

関連する問題