2011-10-25 13 views
0

自分のサイトに、特定の「チャンネル」の背景画像をアップロードできる機能があります。私が抱えている問題は、一部のユーザーが3000 + px x 2000 + pxの解像度で写真をアップロードし、1280 x 720でアップロードするなどのことです。ユーザーアップロードの標準的な背景画像の解像度を設定する

この状況についてはどのような方法がありますか?私は彼らにそのような巨大な決議をアップロードさせ続けるべきですか?またはアップロードを特定のピクセル量に制限しますか?これをどうやってやりますか?ユーザは、背景画像をアップロードすることができますのはここ

は次のとおりです。

<? 
$images = glob(base_root().'uploads/channels/'. $Channels->id .'/background/{*.jpg,*.Jpg,*.JPG,*.jpeg,*.Jpeg,*.JPEG,*.gif,*.Gif,*.GIF,*.png,*.Png,*.PNG}', GLOB_BRACE); 
if(is_array($images) AND count($images) >= 1) { 
    $imagePaths = pathinfo($images[0]); 
$channelBackgroundSrc = base_url() .'uploads/channels/'. $Channels->id .'/background/'. $imagePaths['basename'] .'?rand='. mt_rand(0, 9999); 
?> 

ここでは、その特定のチャンネルの背景画像を取得し、各ユーザーの「チャンネル」の上にあるコードがあります。

$(document).ready(function() { 
    <? 
    $images = glob(base_root().'uploads/channels/'. $channel['id'] .'/background/{*.jpg,*.Jpg,*.JPG,*.jpeg,*.Jpeg,*.JPEG,*.gif,*.Gif,*.GIF,*.png,*.Png,*.PNG}', GLOB_BRACE); 
    if(is_array($images) AND count($images) >= 1) { 
     $imagePaths = pathinfo($images[0]); 
     $channelBackgroundSrc = base_url() .'uploads/channels/'. $channel['id'] .'/background/'. $imagePaths['basename'] .'?rand='. mt_rand(0, 9999); 
    ?> 
     document.getElementById('userBackground'); 
     $("#userBackground").css("background", "url('<?=$channelBackgroundSrc?>') repeat-x scroll 0px 0px transparent"); 
     $("#userBackground").css("background-attachment", "fixed"); 
    <? 
    } 
    ?> 

}); 
+0

で画像のサイズを変更するのに最適なコードで、ユーザーが任意のファイルをアップロードせてはなりません。 – hakre

+0

これは必須です – MJ93

答えて

1

私は、php.iniからアップロードファイルサイズを制限し、サーバーイメージのサイズを変更して最終的に最適な解像度で保存することをお勧めします。ここで

が疑わしい場合にはPHP http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

+0

私はこのリンクにも謝意を表したいと思います:Pはすごく使いやすいです –

+0

私は正常に800KBの制限を背景画像に入れました。どのような最適な解像度をお勧めしますか? 1280 x 800? – MJ93

+1

画像形式によって異なります(PNGは一般的にJPEGよりも大きい)。とにかく、私は800KBは標準の高品質JPEG –

1

イメージを動的にサイズ変更して、フロントエンドからのサイズに合わせることができます。しかし、それはあなたの帯域幅を使用してサイトを誰にでも低速にするのを妨げることはありません。

最適な解決策は、大きさを設定することです。これは、十分な大きさでサイズとサイズが合っていることを確認してから行ってください。必要に応じて切り抜く。

関連する問題