仅在Chrome上破坏了img

时间:2015-04-25 22:56:36

标签: php google-chrome

因此,在here(页面底部)中,您可以看到(仅当使用Chrome时)左下方的损坏图像。

事实证明直接访问它是有效的。 Chrome控制台还为图像提供了404错误。

我使用php文件来提供该图像。我得到show arg并使用readfile来提供该图像。 (代码有效,如在其他浏览器中看到或直接访问它)

我不知道与铬有什么关系。

任何帮助将不胜感激!

我使用wordpress作为基础,并且我使用以下php文件来过滤用户ID能够看到某些图像。

很抱歉,如果代码很乱。我还在学习!

<?php

define('WP_USE_THEMES', false);
require('./wp-blog-header.php');

$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;

//save idlength to compare

$idLength=strlen($current_user_id);

//check for arg
if (isset($_GET['show'])) {

    $img="../Subidas_cliente/{$_GET['show']}";

    //check whether file exists
    if (file_exists($img)){

        //admin ids always get image 
        if($current_user_id==2||$current_user_id==10||$current_user_id==12||$current_user_id==13){
            readfile($img);
        }

        else{

            //compare ids from image and requester
            $tmp=substr($img,0,$idLength);
            $r=strcmp($tmp, $current_user_id);


            if ($r==0){

                $mime_type = mime_content_type($img);
                header('Content-Type: '.$mime_type);

                //readfile if ids are equal
                readfile($img);

            //exit if different (return image for testing purposes)
            }else{
                header('Content-Type: image/jpeg');
                readfile('../Subidas_cliente/default.jpg');
            }
        }

    }else {
        header('Content-Type: image/jpeg');
        readfile('../Subidas_cliente/default.jpg');
    }
}else{
    header('Content-Type: image/jpeg');
    readfile('../Subidas_cliente/default.jpg');
}

?>

1 个答案:

答案 0 :(得分:0)

结果加载wordpress功能就像麻烦(和马车)。我最终通过会话(session_start和$ _SESSION [''])变量传输了ID,它解决了所有问题。