2011-12-04 5 views
1

シャドウボックスは私のサイトで問題なく使用されています。保護されたフォルダからメディアコンテンツを提供するPHPファイルを作成しました。ここでdownload.phpにあるものである:PHPを介して提供される画像は、シャドウボックスに読み込まれません。

<?php 
$fullpath="/home/user/media/image1.jpg"; 
header("Content-Type: image/jpeg"); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Disposition: inline; filename='.basename($filename));  
header("Content-Length: " . filesize($fullpath)); 
readfile($fullpath); 
exit; 
?> 

私はIMGタグを使用してそれを呼び出すか、イメージを試してみて、ダウンロードする場合、これはうまく動作します。例:

<img src="download.php?id=123" /> 

ただし、シャドウボックスを使用するとブラウザが暗くなり、読み込みアニメーションも表示されず、何も表示されません。

<a href="download.php?id=358" rel="shadowbox[test]"><img src="download.php?id=358"/></a> 

上記の例では画像はうまく表示されますが、クリックするとシャドウボックスは読み込まれません。

ありがとうございます!

+0

Firebugまたは開発者ツールでJSコンソールエラーが発生しましたか? –

+0

エラーは表示されません。それはイメージとして.phpファイルをロードしているように動作しています。私はFirefox/FirebugとChromeで試しました。 – prattw

+0

あなたはApacheにありますか.htaccessは許可されていますか? – Riyono

答えて

1

あなたのケースでは、Shadowboxはコンテンツを取得する前にファイル拡張子をチェックします。だから

img.ext=["bmp","gif","jpg","jpeg","png"];

あなたはそれを少し緩めるためにPHPを追加してみてください可能性があり、シャドーは喜んであなたのイメージをつかむだろう:あなたは(img.extを検索してみてください)shadowbox.js内部で検索した場合、あなたはこのどこかを見つけるだろう:

img.ext=["bmp","gif","jpg","jpeg","png","php"];

それとも、あなたがjpgとしてあなたのphpファイルを保存する(いや、奇妙に聞こえる?)とPHPファイルとしてそれを処理するために、サーバーを強制できます。

<files download.jpg> 
    ForceType application/x-httpd-php 
</files> 
+0

それは素晴らしい仕事でした!私は画像のリストをPHPに追加しました。私は十分な信用を得たときにこれを投票しなければならないでしょう:/ – prattw

+0

驚くべきことに、私のプログラミングの潜在意識を数ヶ月にわたって苦しめました!! –

-1

が可能htaccessファイルレベルでの画像の上にPHPをオンはないでしょう:あなたのApacheを使用して.htaccessが許可されている場合たとえば、あなたは.htaccessを作成(または既存の.htaccessファイルにこれらの行を追加)を試みることができます巨大なセキュリティリスク?

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、自分の投稿の下にコメントを残してください。自分の投稿にいつもコメントをつけることができます。そして、十分な[評判](http://stackoverflow.com/help/whats-reputation) [任意の投稿にコメントする]ことができます(http://stackoverflow.com/help/privileges/comment)。 – Dijkgraaf

+0

私は、あなたが言っていることの背後にある理由を理解していますが、そこに情報を入れてセキュリティリスクを生み出すことは重要ではありませんか?スタックに何かを投稿する必要はほとんどないので、私は50の担当者を持っていませんが、これは無責任性を叫び、結果の警告なしにこのような答えを提供します。 – Aaron

関連する問題