2012-02-18 20 views
4

を生成:Javascriptを取得する画像サイズが、私はjavascriptの上の画像サイズを取得するには、このコードを発見した画像

function getImgSize(imgSrc) 
{ 
    var newImg = new Image(); 
    newImg.src = imgSrc; 
    var height = newImg.height; 
    var width = newImg.width; 
    alert ('The image size is '+width+'*'+height); 
} 

それは完璧に動作しますが、私は保護された画像のサイズを取得する必要があります。イメージにアクセスするには、image.php?id = IMAGE_IDというページを使用します。このページでは、アクセス権をチェックしてイメージを送り返すため、動作します。しかし、このリンクをjavascript関数に置くと、サイズを取得するためには機能しません。任意のヘルプ(画像の直接リンクを置くと、.htaccessファイルでブロックされているので、どちらも動作しません)?

イメージが格納されているフォルダには、.htaccessファイルも含まれています。

Image.php:それは.htaccessファイルによってブロックされている場合

//check if the user has permission 
//if not, show a image with the text 'no permission' 
//if it's ok 
$filename = "images\\fotos\\" . $imgl; 
$image = imagecreatefromjpeg($filename); 
header('Content-type: image/jpeg'); 
imagejpeg($image, null, 100); 
imagedestroy($image); 
+0

あなたはそれ以外のjsも何かを、得ることができない、実サーバでは、あなたにも –

+0

を遅らせる検討する必要があり、ブラウザのオープン 'imgSrc'を許可しなければなりません」保護された "方法?パスワードのダイアログを介して? –

+0

必要なCookieまたはセッション変数をチェックしている可能性があります。 –

答えて

2

これを行うための正しい方法は次のとおりです。

var newImg = new Image(); 

newImg.onload = function() 
{ 
    var height = newImg.height; 
    var width = newImg.width; 
    alert ('The image size is '+width+'*'+height); 
}; 

newImg.src = imgSrc; 
+0

ありがとうございます、私は既に私のコードで変更しました(問題は依然として残っていますが、今はイメージに到達するために成功した場合にのみサイズを表示します)。 –

+0

私はあなたのコードでそれを行う方法を見つけました。値を返す代わりに、うまくいきませんでした。サイズ変更コード(元のサイズが必要な理由)を直接onload関数に入れました。イメージが元のサイズでロードされるとすぐに、それは例外サイズにリサイズされます。あなたの答えをありがとうございました。 –

2

が、あなたはそれについて何もできない画像を得るために、私はこのPHPページを使用します。つまり、いかなる状況下でもサーバーの外部からアクセスできないことを意味します。

イメージサイズを取得する特殊なPHPファイルを作成し、このファイルをAJAXで呼び出すという問題を解決できます。ただし、これには追加のサーバーリソースが必要です。

+0

彼はすでに特別なPHPファイルを持っています(彼が質問を編集しない限り?) –

+0

実際、それはうまくいくでしょう。しかし、jsがイメージサイズを取得できるように、image.phpファイル内の何かを変更する方が簡単だと考えていました。私はそれができない理由を理解していない。投稿にimage.phpコードを追加します。 –

関連する問題