Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为用户上载设置标准背景图像分辨率_Php_Javascript - Fatal编程技术网

Php 为用户上载设置标准背景图像分辨率

Php 为用户上载设置标准背景图像分辨率,php,javascript,Php,Javascript,我的网站上有一个功能,用户可以上传特定“频道”的背景图像。我遇到的问题是,一些用户上传的图片分辨率为3000+px x 2000+px,而其他用户上传的图片分辨率为1280 x 720,以此类推 解决这种情况的最好办法是什么?我应该继续让他们上传像那样的巨大决议吗?或者将上传限制为某个像素量?我该怎么做呢 用户可以在此处上载背景图像: <? $images = glob(base_root().'uploads/channels/'. $Channels->id .'/backgro

我的网站上有一个功能,用户可以上传特定“频道”的背景图像。我遇到的问题是,一些用户上传的图片分辨率为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");
    <?
    }
    ?>

});
$(文档).ready(函数(){
document.getElementById('userBackground');
$(“#userBackground”).css(“背景”,“url('')重复-x滚动0px 0px透明”);
$(“#userBackground”).css(“背景附件”,“固定”);
});

您可以实现一种动态调整图像大小的方法,使其适合前端所需的大小;然而,这并不会阻止他们使用你的带宽,也不会让网站对每个人都变慢


最好的解决方案是设置一个尺寸,在尺寸和尺寸方面都足够好,然后再使用它。如果需要,可以裁剪它。

我认为最好的方法是限制php.ini的上传文件大小,然后调整服务器图像大小,最终以最佳分辨率存储

下面是一个在PHP中调整图像大小的好代码

如果有疑问,你不应该让用户上传任何文件。我也想建议这个链接:p,非常好用。我已经成功地为背景图像设置了800KB的限制。对于最佳解决方案,您有什么建议?1280 x 800?取决于图像格式(PNG通常比JPEG大)。无论如何,我认为800KB对于一个标准质量的JPEG来说是不错的