多图像上传 - Meio上传

时间:2013-03-06 16:24:15

标签: cakephp cakephp-2.0 cakephp-2.1 cakephp-appmodel meio-upload

我正在使用'https://github.com/jrbasso/MeioUpload'和Cakephp 2.x中的'MeioUpload'插件。

目前使用此功能进行单张图片上传,请任何人都可以提供有关如何使用此插件处理多张图片上传的建议。目前,存储图像的db表包含每个图像的filename,dir,mimetype和filesize字段。我想在添加新帖子时为每个帖子存储多个图片。任何帮助将非常感谢,提前感谢:)。

1 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,您可能想尝试https://github.com/josegonzalez/upload,因为MeioUpload现已弃用,而且它的开发人员正在处理我链接到的新上传插件。

无论哪种方式,MeioUpload的以下信息也适用于新插件。

MeioUpload用于处理每个相应字段集的上传文件。我不认为MeioUpload的自述文件中的示例是理想的,因为它似乎暗示您必须有一个“图像”表,在现实中,您可以拥有几乎任何事物的表,其中每个记录包含一个或更多上传的文件(无论是图像,PDF,MP3等......)。

因此,考虑到这一点,您有两个解决方案:

1)如果您的帖子可能具有无限数量的图像(即,不是固定的,小数字),那么您可以在单独的表中使用帖子和图像,并在它们之间建立一个hasMany关系。见http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html

2)如果您知道每个帖子最多只有3或4个(或其他相对较小的数量)图像,那么您可以在您的图像中实现3(或4或X)组图像字段发布表/模型,每个都处理单独的上传。他们会被命名,例如。 featured_image_filename,feautred_image_dir等; image2_filename,image2_dir,image2_mimetype等; image3_filename,image3_dir等

你的行为看起来像是:

var $actsAs = array(
    'MeioUpload.MeioUpload' => array(
        'featured_image_filename' => array(
                'fields' => array(
                    'dir' => 'featured_image_dir',
                    'filesize' => 'featured_image_filesize',
                    'mimetype' => 'featured_image_mimetype'
                ),
        ),
        'image2_filename' => array(
                'fields' => array(
                    'dir' => 'image2_dir',
                    'filesize' => 'image2_filesize',
                    'mimetype' => 'image2_mimetype'
                ),
        ),
        'image3_filename' => array(
                'fields' => array(
                    'dir' => 'image3_dir',
                    'filesize' => 'image3_filesize',
                    'mimetype' => 'image3_mimetype'
                ),
        ),
    )
);

这第二个解决方案并不是理想的数据库设计,但有时当你知道永远不会有多个图像时,它只是最简单的方法 - 无论是在开发方面,还是在易于开发方面。使用UI。

有意义吗?