自定义帖子类型:上传多张图片

时间:2016-04-06 作者:Stephen

因此,我正在为我的一个客户制作这个属性列表主题,在我创建的属性自定义帖子类型(CPT)上,我需要添加一个元框,允许他上传多张图片-类似于此:

Upload Meta Box

我该怎么做?到目前为止,我所看到的一切都推荐使用高级自定义字段之类的插件,但如果可以的话,我希望避免使用第三方插件。

谢谢:)

2 个回复
最合适的回答,由SO网友:andresgl 整理而成

我向您推荐这些视频-->https://www.youtube.com/playlist?list=PLIjMj0-5C8TJYSkKnUyHH1VXlIpvZXOMT

在我看来,我更喜欢使用插件ACF。该插件有助于节省时间。它很容易使用,客户会很高兴的。此外,客户机不会关心您是否使用了插件或您自己编写了代码,客户机会关心功能是否正常工作。

我是第一个不安装插件的人,但ACF插件是必需的(必需的)。我在所有项目中都使用它。

SO网友:Jaquarh

为文件上载添加安全对象,如下所示:

class FileSecure
{
    public resource $Allowed;
    private object $Info;
    public function __construct($allow)
    {
        $this->Allowed = $allow;    
        $this->Info = new finfo();
    }
    public function Check($file) : bool
    {
        if(in_array($fileType = $this->Info->file($file, FILEINFO_MIME_TYPE, $this->Allowed))) { return true; } else { return false; }
    }
}

$fileCheck = array(
     \'Image\' => new FileSecure([\'image/bmp\', \'image/gif\', \'image/jpeg\', \'image/png\']),
     \'Text\' => new FileSecure([\'text/plain\']),
     \'Compressed\' => new FileSecure([\'application/zip\', \'application/x-rar-compressed\'])
);

Click here to view all the MIME name\'s to extensions

然后添加一个允许文件上传的前端表单,并在使用上传的文件之前通过该对象。

// note it must exist on the server before checking
if(!$fileCheck[\'Image\']->Check($filename)):
    // delete the file
endif;
您可以使用数据库保存文件位置,或者在服务器上有一个默认的上载目录,并遍历该目录中保存的文件。

相关推荐