blueimp jquery 文件上传器 image_versions 不工作

blueimp jquery file uploader image_versions doesn't work

我已经上传了 blueimp jquery 文件。我尝试制作更多 image_versions。 第一个和最后一个 image_version 确实有效。在我的例子中,''、'small' 和 'thumbnail' 有效,另一个无效。 在另一个 image_versions 中,图像将被上传但不会调整到正确的大小。

这是我的代码片段:

'image_versions' => array(
            // The empty image version key defines options for the original image:
            '' => array(
                // Automatically rotate images based on EXIF meta data:
                'auto_orient' => true
            ),
            'small' => array(
                'max_width' => 150,
                'max_height' => 150
            ),

            'medium' => array(
                'max_width' => 200,
                'max_height' => 200
            ),

            'large' => array(
                'max_width' => 400,
                'max_height' => 400
            ),

            'xlarge' => array(
                'max_width' => 600,
                'max_height' => 600
            ),

            'square' => array(
                'crop' => true,
                'max_width' => 300,
                'max_height' => 300
            ),

            'thumbnail' => array(
                'max_width' => 100,
                'max_height' => 100
            )
        )

我只是 运行 遇到了这个完全相同的问题。在深入研究代码后,我发现当它循环遍历图像版本时,它会将生成的图像对象保存在缓存中。因此,在处理 'small' 之后...生成的图像对象 ( 150 x 150 ) 的缓存版本被称为文件。

因为代码认为图像是 150 x 150,所以源文件被简单地复制为 medium、large、xlarge 和 square。但是缩略图被处理,因为它小于 150 x 150。

要解决这个问题,您可以将 no_cache 选项添加到您的图像版本 - 这会降低代码效率,但可以解决您(和我)的问题。

因此您的代码将如下所示:

'image_versions' => array(
    // The empty image version key defines options for the original image:
    '' => array(
        // Automatically rotate images based on EXIF meta data:
        'auto_orient' => true
    ),
    'small' => array(
        'max_width' => 150,
        'max_height' => 150,
        'no_cache' => true
    ),

    'medium' => array(
        'max_width' => 200,
        'max_height' => 200,
        'no_cache' => true
    ),

    'large' => array(
        'max_width' => 400,
        'max_height' => 400,
        'no_cache' => true
    ),

    'xlarge' => array(
        'max_width' => 600,
        'max_height' => 600,
        'no_cache' => true
    ),

    'square' => array(
        'crop' => true,
        'max_width' => 300,
        'max_height' => 300,
        'no_cache' => true
    ),

    'thumbnail' => array(
        'max_width' => 100,
        'max_height' => 100,
        'no_cache' => true
    )
)