Drupal 使用文件(字段)路径模块设置上传文件

Drupal uploading files with File (Field) Path module settings

这是我的设置:

内容类型媒体包含下一个字段:

"Book" 词汇表包含一个名为 "Folder" 的文本字段,其中包含每本书的文件夹名称。 我想使用该字段值将其附加到文件路径以上传该子文件夹中的音频文件。

它上传了临时文件夹中的文件,但没有上传到正确的文件夹,例如如果 "Book" 术语 "Book 1""Folder" 字段值为 "book_1",我希望将音频文件上传到 "media/books/book_1" 文件夹中。

我正在使用 文件(字段)路径 模块,但我不确定如何正确配置它。 在我的 "Audio" 字段中,我将文件路径设置设置为

"media/books/[node:field-book:field-folder]"

但是什么也没有发生。也许我没有使用正确的令牌或其他问题?

您的词汇表中不需要 "folder" 字段。这里的问题是 Drupal 的核心文件模块不支持基于实体的标记。

为此你需要安装几个模块。您需要实体令牌模块(它带有 entity API module) and you already have file paths 模块。

  1. 安装entity API模块并启用实体令牌
  2. 将音频字段的文件目录路径设置为:media/books
  3. 设置文件目录的默认路径后,在媒体内容类型的音频字段中启用文件(字段)路径
  4. 更改文件路径:media/books/[node:field-book]

现在你应该得到你想要的了。

当您 select 上传文件并单击上传按钮时,Drupal 无法从参考术语中获取路径,因为您 select 编辑的值尚未通过 Drupal 核心进行解析。即使您尝试保存内容而没有事先单击上传按钮,Drupal 核心也会首先尝试上传 selected 文件,但它不知道目的地。

File (Field) Paths 模块在默认文件夹目标上临时上传文件(因此,您需要将路径设置为不带标记的目录 - 在您的情况下为 /media/books)。保存节点并为 Drupal 提供节点令牌值后,文件将移动到所需的目的地(在您的情况下为 /media/books/token_values)。

加法:

排队:

media/books/[node:field-book]

令牌值取自您的词汇表定义的媒体类型的书籍字段。重命名标记值意味着将您的分类术语重命名为与您的图书相关的名称。如果服务器上已有无法重命名的文件夹,那么在词汇表中添加另一个字段是个不错的选择。

您的媒体内容类型中音频字段中的文件(字段)路径应为:

 media/books/[node:field-book:field-folder]

因此,如果您将第 1 本书的文件夹值设置为 book_1,第 2 本书的文件夹值设置为 book_2,等等...

当您 select "Book 1" 上传时,您应该能够上传

中的文件
media/books/book_1 

media/books/book_2

注意:Drupal 不会删除创建的文件夹if/when 您更改标记的值。

希望对您有所帮助。