我在Drupal 7中构建了一个自定义设置表单,其中包含一个图片上传字段。此图片字段应允许多次上传。
经过一些研究后,我发现您可以使用managed_file
和'#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>
正如您所看到的,testclass
中的#attributes
正在应用于包裹div
,而不是应用于文件输入。因此multiple
属性不做任何事情。
这就是我想要实现的目标(Photoshop):
有关如何实现这一目标的任何帮助表示赞赏。
答案 0 :(得分:2)
多重选项似乎不是supported。然后你再次在#attributes下使用它。这会导致IMO的html元素有一个atttribute多个,但我没有在/modules/file/file.js中看到任何东西来接收它,所以这可能是为什么它是not doing anything。 根据建议here,你可能最好使用plupload。