【问题标题】:Drupal uploading files with File (Field) Path module settingsDrupal 使用文件(字段)路径模块设置上传文件
【发布时间】:2016-04-15 07:44:34
【问题描述】:

这是我的设置:

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

  • "Audio" 上传目录到:media/books(音频字段由 Audiofiled 模块提供)
  • "Book"字段术语参考

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

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

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

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

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

【问题讨论】:

    标签: drupal drupal-files


    【解决方案1】:

    您的词汇表中不需要“文件夹”字段。这里的问题是 Drupal 的核心文件模块不支持基于实体的令牌。

    为此,您需要安装几个模块。您需要实体令牌模块(它带有entity API 模块)并且您已经拥有file paths 模块。

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

    现在你应该有你想要的了。

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

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

    加法:

    排队:

    media/books/[node:field-book]
    

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

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

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

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

    当您在上传过程中选择“Book 1”时,您应该能够上传文件

    media/books/book_1 
    

    media/books/book_2
    

    注意:如果/当您更改令牌的值时,Drupal 不会删除创建的文件夹。

    希望这会有所帮助。

    【讨论】:

    • 感谢您抽出时间和精力来回答这个问题。这是一个进步!但仍然没有得到我想要的。例如我的书名是“Book 1”,这是一个分类术语名称,但我已经在 /media/books 中的文件夹称为 book_1。我需要将我的 mp3 文件上传到 book_1 文件夹。在我按照你的建议做了之后,drupal 在我的 media/books 文件夹中创建了一个名为 Book 1 的新文件夹。这就是我在可能的分类词汇表中创建字段文件夹的原因。每本书都有一个固定的标题和不同的文件夹,以便进行视觉排序。
    • 我没有得到您想要的...请更具体...您想上传“media/books/book_1”文件夹中的文件。相反,您在 media/books/Book 1 中上传了文件。所以重命名令牌值?将书 1 放入 book_1。你可以在词汇表中填写“文件夹”,但我不明白为什么你需要它来上传文件......
    • 我的逻辑是,由于书名与其子文件夹名称不同(文件夹已经在服务器上),我想将适当的文件夹名称存储在每本书的字段中,以便我可以使用当我通过令牌添加节点时,它会附加到媒体/书籍路径。这就是我的文件夹字段存在的原因。但是我知道我不需要它,因为您的解释是当节点保存/保存时,drupal 不知道该值。我有大约 100 本书,书名与子文件夹名称不同。如何对 drupal 说特定书籍的文件夹在哪里?
    • 我不允许重命名子文件夹。 “所以重命名令牌值”是什么意思?我不明白这个问题。希望我更清楚一点......
    • 我明白了。我以为您想在开发后将添加数据的服务器上构建排序...我在答案中发布了添加内容,希望对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多