2

我正在 Drupal 7 中构建一个带有图像上传字段的自定义设置表单。此图像字段应允许多次上传。

经过一些研究,我发现您可以使用managed_fileand来做到这一点'#attributes' => array('multiple' => 'multiple')。然而,这似乎并没有做任何事情。

这是我目前拥有的代码:

$form['frontpage_banner_images'] = array(
  '#type' => 'managed_file',
  '#title' => t('Frontpage Images'),
  '#name' => 'files[]',
  '#attributes' => array(
    'multiple' => 'multiple',
    'class' => 'testclass',
  ),
  '#upload_location' => 'public://homepage-banners/',
  '#default_value' => variable_get('frontpage_banner_images'),
);

结果是:

<div class="form-item form-type-managed-file form-item-files-">
  <label for="edit-frontpage-banner-images-upload">Frontpage Images</label>
  <div id="edit-frontpage-banner-images-upload" class="testclass form-managed-file">
    <input type="file" id="edit-frontpage-banner-images-upload" name="files[frontpage_banner_images]" size="22" class="form-file">
    <input type="submit" id="edit-frontpage-banner-images-upload-button" name="frontpage_banner_images_upload_button" value="Upload" class="form-submit ajax-processed">
    <input type="hidden" name="frontpage_banner_images[fid]" value="0">
  </div>
</div>

如您所见,testclassfrom my#attributes被应用于包装div而不是文件输入。所以该multiple属性没有做任何事情。

这就是我想要实现的目标(Photoshopped):

在此处输入图像描述

任何有关如何实现这一点的帮助表示赞赏。

4

1 回答 1

3

似乎不支持多选项。然后再次在#attributes 下使用它。这将导致 IMO 的 html 元素具有多个属性,但我在 /modules/file/file.js 中看不到任何内容,所以这可能就是它没有做任何事情的原因。按照这里的建议,您可能最好使用 plupload 。

于 2017-03-08T07:57:27.320 回答