MeioUpload没有在cakephp 2.4中创建缩略图

时间:2013-12-01 09:27:30

标签: cakephp thumbnails phpthumb meio-upload

我正在使用meioupload,一切正常,直到我尝试制作缩略图。然后我只能看到一种说明

的phpThumb错误消息
"C:/wamp/cakephp/vendors/phpTmub/img/uploads/product/filename/image.png" does not exist

我是cakePHP的新手,所以我以前从未遇到过这个问题。有谁知道我该怎么办?

这是我的型号代码:

var $actsAs = array(
    'MeioUpload' => array(
        'filename' => array(
            'create_directory' => true,
            'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
            'allowed_ext' => array('.jpg', '.jpeg', '.png'),
            'zoomCrop' => true,
            'thumbsizes' => array(
                'normal' => array('width' => 400, 'height' => 300),
                'small' => array('width' => 80, 'height' => 80,'maxDimension' => '', 'thumbnailQuality' => 100, 'zoomCrop' => true),
                ),
            'default' => 'default.jpg'
            ) 
        ));

更新

我为cakePHP 2.0找到了特殊的phpThumb,所以Path改为:

"C:/wamp/cakephp/img/uploads/product/filename/image.png"

如果我在浏览器中打开默认图像,则路径如下:

localhost:8080/cakephp/img/uploads/product/filename/image.png

由于

2 个答案:

答案 0 :(得分:2)

我解决了这个问题,也许不是很优雅,但它确实有效! 正如我所说,我第一次为cakePHP下载了特殊版本的phpThumb。

这是链接:https://github.com/simkimsia/phpThumb-for-cakephp-2.0

我的路径出现问题后,因为我的图片位于文件夹中:C:\wamp\www\cakephp\app\webroot\img\uploads\product\filename\image.png

所以我必须找到这部分代码(从第1078行开始):

if ($this->useCake) {
                if ($this->config_document_root != null) {
                    $AbsoluteFilename = $this->config_document_root.DIRECTORY_SEPARATOR.$filename;
                } else {
                    $AbsoluteFilename = WWW_ROOT.DIRECTORY_SEPARATOR.$filename;
                }
            }

编辑适合我文件夹的路径:

$AbsoluteFilename = $this->config_document_root.DIRECTORY_SEPARATOR.'cakephp'.DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'webroot'.DIRECTORY_SEPARATOR.$filename;

$AbsoluteFilename = WWW_ROOT.DIRECTORY_SEPARATOR.'cakephp'.DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'webroot'.DIRECTORY_SEPARATOR.$filename;

现在它的工作完美......

答案 1 :(得分:0)

尝试了很多东西后......最后看了Jan Omacka的答案,我只需编辑phpthumb.class.php,构造函数phpThumb()中的第223行

首先

// public: constructor
function phpThumb() {
.....
//comment line 
//$this->config_document_root = (!empty($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT']   : $this->config_document_root);
.....
}


//and put the constant CakePHP Var WWW_ROOT (Full path to the webroot.) 
$this->config_document_root = WWW_ROOT;
//and if this don't work.. put your real path in linux, or windows
//$this->config_document_root = '/srv/www/htdocs/sic/app/webroot/';

在我的webroot内部,有一个estructure'Usuarios / ID_Prestamo / IDUsuario /'的文件夹,一切都很好上传图片但拇指没有..所以下载完最后一个版本的phpThumb后,我看到显示错误文件不存在(URL格式错误,对于原始JPG文件),在下载了CakePhp的特殊版本并更改了所提到的行..并且一切正常...我使用OpenSuse Linux,Apache2,与Cake 2.4.2

注意:我确认如果没有zoomCrop它不起作用,这是我的结构

 'dir' => 'galeria/', //main folder webroot/galeria/ 
                'createDirectory' => true,
                'maxSize'=>'5 Mb',
                'allowedExt' => array('.jpg','.jpeg','.png'),
                'zoomCrop' => true,
                'thumbsizes' => array(
                    'small'  => array('width'=>165, 'height'=>115),
                    'medium' => array('width'=>800, 'height'=>600)
                ),