2016-04-15 95 views
0

这是我的设置:与文件Drupal的文件上传(场)路径模块设置

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

提起
  • "Audio"与上传目录:media/books(音频场通过Audiofiled模块)
  • "Book"场项参考提供

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

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

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

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

但什么也没有发生。也许我不使用正确的标记或其他问题?

回答

1

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

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

  1. 安装entity API模块,使实体令牌
  2. 设置你的文件目录路径音频领域:传媒/书籍
  3. 在设置默认路径文件目录能够在音频领域的文件(现场)路径媒体内容类型
  4. 没有改变你的文件路径:媒体/书籍/ [节点:现场书]

现在你应该有你想要的东西。

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

默认文件夹目标文件(字段)路径模块临时上载文件(因为您需要设置不带令牌的目录的路径 - 在您的案例/媒体/书籍中)。一旦你保存了节点,并且Drupal提供了节点令牌值,文件就会移到所需的目的地(在你的案例/ media/books/token_values中)。

增加:

在行:

media/books/[node:field-book] 

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

文件(现场)路径在音频领域中的媒体内容,类型应该是:

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

所以,如果你设置你的文件夹值book_1为1册,book_2为2册,等等

当您选择“1册”上载过程中,你应该能够在

media/books/book_1 

上传文件
media/books/book_2 

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

希望这会有所帮助。

+0

感谢您花时间和精力回答问题。 这是一个进步!但仍然没有得到我想要的。 例如我的书名是“Book 1”,这是一个分类术语名称,但我已经在/ media/books中的文件夹名为book_1。我需要将我的mp3文件上传到book_1文件夹。 在我按照你的建议做了什么之后,drupal在我的media/books文件夹中创建了名为Book 1的新文件夹。 这就是为什么我在分类词汇表中创建字段文件夹的原因。每本书都有一个普通的标题和它的文件夹,它们在视觉上进行排序的目的不同。 –

+0

我没有得到你想要的...请更具体地...你想上传“media/books/book_1”文件夹中的文件。相反,你在这里得到的文件上传到media/books/Book 1.所以重命名标记值?将book 1预订到book_1。你可以在词汇表中提交“文件夹”,但我不明白为什么你需要它来上传文件... – Darko

+0

我的逻辑是,由于书名与他们的子文件夹名称不同(文件夹已在服务器上),因此我想要在每本书的字段中存储适当的文件夹名称,以便在通过标记添加节点时,可以使用它追加到媒体/书籍路径。这是我的文件夹字段存在的原因。但我明白,我不需要它,因为当节点正在保存/保存时,drupal不知道这个值。我有大约100本书,书名不同于子文件夹名称。如何对drupal说特定图书的文件夹在哪里? –