我目前正在制作一个前端表单,供用户在我们的网站上创建帖子。使用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
谢谢!