1

我正在使用 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,因此路径更改为:

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

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

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

谢谢

4

2 回答 2

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;

现在它工作得很好......

于 2013-12-01T18:14:41.987 回答
0

在尝试了很多东西之后.. 最后阅读了 Jan Omacka 的答案,我只需要在构造函数 phpThumb() 中编辑 phpthumb.class.php,第 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 中,有一个结构为“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)
                ),
于 2015-10-16T00:06:45.447 回答