前端acf_form中的Dropzone区域将多个图像上传到新帖子

时间:2017-10-20 13:08:10

标签: php wordpress file-upload advanced-custom-fields dropzone.js

我目前正在制作一个前端表单,供用户在我们的网站上创建帖子。使用acf_form设置表单,并且所有实际字段都起作用。除了各种文本输入外,用户还应该能够将大量图像和大量pdf文件上传到帖子中。当然,这可以通过使用具有基本图像和文件上传器的转发器字段来实现,但我觉得这不是一种非常用户友好的方法。因此我添加了dropzone区域(http://www.dropzonejs.com/),它们可以放置字段。但是,当我发布表单时,文件数组是空的 - 我认为问题是我设置的URL,因为dropzone选项的选项是错误的,但我无法弄清楚要在哪里发布它才能正常工作

以下是我的代码的一些相关部分:

$extrafields =
'<div class="canvas" id="image--canvas">
<div class="dz-message">Klik eller træk billeder hertil for at tilføje</div>
</div>
<div class="canvas" id="file--canvas">
<div class="dz-message">Klik eller træk filer hertil for at tilføje</div>
</div>';

$formoptions = array(
    'post_id'       => 'new_post',
    'new_post'      => array(
        'post_type'     => 'projekt',
        'post_status'   => 'publish'
    ),
    'submit_value'  => 'Indstil projekt',
    'post_title' => true,
    'field_groups' => array( 
        'group_58329d09a0e22', 
        'group_584ed2ee82818', 
    ),
    'post_content' => true, 
    'wrap_field_groups' => true,
    'uploader' => 'basic',
    'html_before_fields' => $extrafields,
);

实际表单将添加到页面模板中:

acf_form($formoptions); 

(我使用JS将表单开头的dropzones移动到适当的位置)

Dropzone构造:

$("#image--canvas").dropzone({
    url: window.location.origin + window.location.pathname,
    clickable: true,
    autoProcessQueue: false,
    uploadMultiple: true,
    parallelUploads: 100,
    maxFileSize: 6,
    maxFiles: 8,
    acceptedFiles: 'image/*',
    addRemoveLinks: true,
    dictCancelUpload: 'Fjern fil',
});

当我拦截acf / validate_save_post时,$ _FILES数组为空。与acf / pre_save_post相同。我的获取计划是拦截来自dropzone的文件,然后手动上传并将它们添加到新帖子的相关字段中。但只要数组为空,这就相当困难。

非常感谢有关如何使其发挥作用的任何建议。或者其他方法。我的主要目的是允许(未登录)用户以很好的方式从前端表单上传多个文件。

Screenshot here for reference of how I would like it

谢谢!

0 个答案:

没有答案