0

我正在使用上传用户的图像,然后在完整大小的图像上传完成后,我制作一个压缩副本以用作要显示的缩略图。一切正常,除非我尝试上传大于 13-14MB 的文件。对于大于此大小的文件,原始完整大小的文件会进入服务器,但不会创建缩略图。

我的上传和压缩代码是:

function compress_image($source_url, $destination_url, $quality) {
    $info = getimagesize($source_url);
    if ($info['mime'] == 'image/jpeg'){$image = imagecreatefromjpeg($source_url);}
    else if ($info['mime'] == 'image/gif'){$image = imagecreatefromgif($source_url);}
    else if ($info['mime'] == 'image/png'){$image = imagecreatefrompng($source_url);}
    imagejpeg($image, $destination_url, $quality);
    return $destination_url;
}


if(isset($_POST['folder'])){
    $filename = $_SERVER['HTTP_X_FILE_NAME'];
    $final_img = $_SESSION['dir']."/".$_SESSION['folder']."/".$filename;

    // UPLOAD FULL IMAGE
    if (file_put_contents($final_img, file_get_contents('php://input'))){

    // CREATE COMPRESSED THUMBNAIL
    if(compress_image($final_img, $_SESSION['dir']."/".$_SESSION['folder']."/thumbs/".$filename, 50)){
        // continue
    }
    else{
        // error
    }

}
else {
    // no post
}

我最初认为这是由于帖子或内存限制,所以我尝试了几种配置,甚至在我的php.ini文件中达到以下配置(并检查了使用的值phpinfo()并更新了它们)但再次没有运气。

post_max_size = 1G
upload_max_filesize = 1G
memory_limit = 1G
4

1 回答 1

0

所有排序,似乎根目录中的 php.ini 文件没有在它所在的子目录中使用。通过将它们设置在文件本身中,如下所示,它现在可以工作:

ini_set('memory_limit','1G');
ini_set('post_max_size','1G');
ini_set('upload_max_filesize','1G');
于 2013-10-09T11:07:22.503 回答