使用文件字段保存节点

2023-12-10

我正在为 Drupal 站点创建批量上传功能。使用 flash,我可以将文件上传到特定的 url,然后由该 url 处理这些文件。我想要做的不仅仅是上传文件,而是创建一个特定类型的节点,并将文件保存到已使用 CCK 设置的文件字段中。由于这些是音频文件,因此 filefield 处理这些文件非常重要,因此可以使用 getid3 模块提供附加元数据。

现在我已经查看了一些代码,因为我无法找到 API 文档,但根本不清楚我应该如何处理这个问题。理想情况下,我可以将文件传递给函数并仅使用保存节点时返回的数据,但我无法找到该函数。

如果有人有这方面的经验,我将不胜感激一些关于如何处理这个问题的指示。


几周前我不得不做类似的事情,最终调整了一些功能远程文件模块,尤其是remote_file_cck_attach_file()功能。它使用field_file_save_file()filefield 模块中的函数,这可能是您正在寻找的函数。

就我而言,文件是从多个远程位置获取并使用临时存储file_save_data()。将它们附加到 CCK 文件字段发生在hook_nodeapi()预保存,使用以下命令:

public static function attachAsCCKField(&$node, $filepath, $fieldname, $index=0) {
  // Grab the filefield definition
  $field = content_fields($fieldname, $node->type);
  $validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
  $fieldFileDirectory = filefield_widget_file_path($field);
  // This path does not necessarily exist already, so make sure it is available
  self::verifyPath($fieldFileDirectory);
  $file = field_file_save_file($filepath, $validators, $fieldFileDirectory);
  // Is the CCK field array already available in the node object?
  if (!is_array($node->$fieldname)) {
    // No, add a stub
    $node->$fieldname=array();
  }
  $node->{$fieldname}[$index] = $file;
}

$filepath是应附加的文件的路径,$fieldname是要在节点内使用的文件字段实例的内部名称,并且$index如果有多个字段条目,则为附加文件的基于 0 的索引。

该函数最终位于一个实用程序类中,因此是 verifyPath() 调用的类语法。该调用只是确保目标目录可用:

public static function verifyPath($path) {
  if (!file_check_directory($path, FILE_CREATE_DIRECTORY)) {
    throw new RuntimeException('The path "' . $path . '" is not valid (not creatable, not writeable?).');
  }
}

这对我来说是这样的——其他一切都在节点自动保存时发生。

我还没有使用 getid3 模块,所以我不知道它是否可以与这种方式一起使用。另外,我不需要向文件字段添加额外的信息/属性,所以也许您必须在字段数组中添加更多信息,而不仅仅是返回的文件field_file_save_file()。无论如何,希望这有帮助,祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用文件字段保存节点 的相关文章

  • Drupal 7 - 在#link表单类型条目中添加HTML?

    我需要将 HTML 标记添加到 titleDrupal 7 的领域 type链接表单元素 输出应该大致如下所示 a href saveprogress nojs 123 class ajax processed span class mym
  • Postgres SSL 错误

    我正在尝试通过 SSH 和 drush 命令行 shell 运行 Drupal 迁移 将数据从 postgres 数据库复制到 mysql 它工作正常一段时间 大约 5 分钟左右 但随后我收到错误 SQLSTATE HY000 Genera
  • 通过 Drupal 执行查询时 Apache Solr 结果不同 – 为什么?

    我正在尝试创建一个自定义搜索界面阿帕奇 索尔 http lucene apache org solr using Drupal http drupal org 我对结果有一些奇怪的问题 当我从 Solr 的内置 Web 界面运行它时 相同的
  • 如何更改页脚 由 Drupal 及其链接提供支持?

    我正在 Drupal 上工作 我想知道如何更改由 Drupal 提供支持的页脚文本以及为其提供的链接 我想要 版权所有 2012 我的网站名称 保留所有权利 我无法得到它 任何人都可以帮助我 只需转到 结构 gt 块 gt 添加块 将块标题
  • HTTP 413 请求实体太大

    我目前无法在 drupal 7 7 15 中的自定义文件字段上使用 Drupal FileField Source 远程 url 选项 发布非常大的文件 文件已成功上传到 tmp 目录 但在尝试发布时失败 文件大小为870Mb A 510m
  • Drupal 节点揭秘

    我是 Drupal 的新手 希望了解这个平台的工作原理 具体来说 我对 Node 对象感到困惑 这是什么东西 Content Type是怎么进来的 看起来整个 Drupal 就是节点 节点 节点 很想听听您的见解 当您第一次接触 Drupa
  • 使用 Drupal 中的外部身份存储库验证注册数据

    当我的用户尝试注册时 我想通过检查外部身份存储库 例如调用 Web 服务或查找目录服务器 来确保他的信息有效 任何现有模块都可以实现这一点吗 如果没有 开发此功能的最佳方法是什么 我不知道现有模块允许添加自定义验证 但使用 验证 操作来实现
  • 如何摆脱 Drupal CSS 样式表?

    我正在努力完成以下任务 我需要使用 Drupal 6 作为项目要求 但我想将它与我自己的 HTML 和 CSS 样式表一起用于每个节点 视图 面板等 问题是 无论什么主题 我总是发现 Drupal 适用于我的 HTML 内容 包括我的 CS
  • 如何让tinymce(浏览器内的“富编辑器”)保留缩进

    问题 我将 Drupal 与丰富的编辑器一起使用 而丰富的编辑器喜欢通过删除缩进和格式来破坏我的文本 这在桌面编辑器中是不可接受的 但人们似乎可以在浏览器内编辑器中容忍这种情况 问 如何关闭此功能 我已经四处搜索 但尚未找到告诉富编辑器保留
  • 更改 Drupal 中的节点创建标题?

    假设我有一个名为 产品 的节点 当我创建这样的节点时 它将始终显示 创建产品 作为节点的标题 创建节点时如何更改此标题 你的意思是你有一个内容类型 http drupal org node 21947 产品 创建 产品 类型的节点时的 创建
  • 如何在 Drupal 7 中打印自定义菜单?

    我在 Drupal 7 中创建了一个菜单 并创建了该菜单下页面的链接 我将新菜单命名为 站点菜单 在我希望菜单出现的 page tpl php 中 我已将其放在适当的位置 清除缓存并刷新页面后 我的菜单不会出现 我很困惑 任何帮助将不胜感激
  • Wordpress 和 Drupal SSO/单点登录

    我已经在 Wordpress 中制作了我的前端网站 这对我来说很好 我想在 Drupal 中创建会员 员工区域 因为它具有更多 Google 文档和 Mediawiki 功能 我想知道我是否可以在两个站点之间共享登录信息 因此如果我在 Wo
  • Drupal - 使用引导程序检查 Drupal 之外的登录用户不起作用

    我正在绞尽脑汁地想弄清楚这个问题 在 Drupal 目录之外时 我无法让 Bootstrap 正常工作 如果我在 Drupal 目录中运行此代码 它可以正常工作 但向上一级不起作用 我的 Drupal 路径是 public html dru
  • 使用主题函数在 body 标记后插入代码

    我试图在开头添加一段代码everyDrupal 站点中的页面 因为我有不止一个page模板 我想以编程方式执行此操作 但没有成功 我还是个新手 虽然我了解了钩子 主题函数等的要点 但我只是想不出实现这一目标的正确方法 到目前为止我已经覆盖了
  • 在 Drupal 8 中如何在保存节点之前操作值?

    我有一个编辑节点表单 当用户输入新值并单击提交来编辑节点时 我首先想取回旧节点 操作该值 然后保存 更新节点 以下是我的解决方案 但它不起作用 function custom module form node form alter form
  • 推送通知 Drupal 模块 - 删除设备(Web 服务)

    我已经开始使用这个模块 并且我已经成功注册设备 按照他的作者发布的说明进行操作 here http www danielhanold com story drupal 7 push notifications how to register
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • Drupal:需要上传文件吗?

    由于某种原因 当我尝试要求上传文件时 我的表单中断了 这是它的代码 form id upload form form form id array type gt fieldset description gt t This is a uti
  • 找出是什么原因导致可怕的“网站遇到意外错误。请稍后再试。”信息

    在进行 drupal 6 到 7 升级时 我收到了不太有用的消息 网站遇到意外错误 请稍后再试 每次我进入某些页面时 例如 管理 配置 找出导致致命错误的原因以便我可以修复它的最佳方法是什么 我现在能想到的就是开始禁用贡献的模块 直到该页面

随机推荐

  • TouchBegin 和 TouchMove Xcode Obj C 问题

    因此 当您按下并拖动时 我的应用程序运行良好 我还在 Interface Builder 中将 UIButtons 设置为 Touch Down 同样 当您拖动时 您需要从 UIButton 的外部拖动 您不能单击 UIButton 并拖动
  • 使用 Core Motion 可以获得更准确或更快的加速度计读数吗?

    我可以使用Core Motion框架的这种方法 void startAccelerometerUpdatesToQueue NSOperationQueue queue withHandler CMAccelerometerHandler
  • Android:为什么视图没有 maxHeight?

    视图有一个minHeight但不知何故缺乏maxHeight 我想要实现的是让一些项目 视图 填充ScrollView 当有 1 3 个项目时我想直接显示它们 意思是ScrollView具有 1 2 或 3 个项目的高度 当有 4 个或更多
  • UIKeyboardTypeDecimalPad 中的小数点不能用于数学计算

    我使用的键盘类型 UIKeyboardTypeDecimalPad两个人UITextField对象 当尝试执行添加时 根据当前区域设置 我会得到不同的结果 情况 1 美国格式 小数点显示为 正如预期的那样 如果我添加 12 3 文本字段 1
  • Django Rest Api - ManyToManyField,在练习数组中显示“标题”而不是“id”

    Django Rest Api ManyToManyField 在练习数组中显示 标题 而不是 id HTTP 200 OK Allow GET POST PUT DELETE PATCH Content Type application
  • 如何从 python 脚本调用现有的 LibreOffice python 宏

    目前 我使用以下命令调用现有的 LibreOffice 宏 def OnLOtimestamp self try pid Popen lowriter vnd sun star script fs2TimeStamp py fs2 Time
  • 如何在 Django 1.4 中使用 DB 路由器

    我一直在尝试设置 Django 1 4 3 以使用多个数据库 但我一生都无法让它工作 我阅读了有关 SO 的文档和帖子 并执行了以下操作 1 添加第二个数据库配置settings py 如下 DATABASES default ENGINE
  • 定义自定义属性

    我需要实现我自己的属性 例如com android R attr 在官方文档中找不到任何内容 因此我需要有关如何定义这些属性以及如何从我的代码中使用它们的信息 目前最好的文档是源代码 你可以看一下这里 attrs xml 您可以在顶部定义属
  • 我可以用 Objective-C 以外的任何语言编写 iPhone 应用程序吗?

    是否可以用 Objective C 以外的任何语言编写 iPhone 应用程序 基本上 iPhone iOS 编程有 3 个主要选项 Objective C MonoTouch 适用于 iOS 的 C Adobe AIR 可能还有其他一些可
  • DAO 和依赖注入,有建议吗?

    这是我第一次使用 DAO 模式 从我所得到的read到目前为止 实现这种模式将帮助我将调用代码 控制器 与任何持久性实现分开 这正是我想要的 也就是说 我不想被限制使用任何特定的数据库或第三方库 我正在使用 MongoDB 和吗啡 作为示例
  • 无法安装 ASP.NET MVC 3 RC

    Web 平台安装程序给了我一条成功消息 但 MVC 3 不存在于我的系统上 在 VS 或控制面板中 我下载了安装程序 它告诉我 OS Version 6 0 6000 Platform 2 12 10 2010 11 50 9 OS Des
  • 如何使用平面映射java8根据值的键数量对哈希映射进行排序?

    这是后续的如何使用 lambda 获取哈希映射中值的键数 我有一个HashMap我想找到每个值的键数 Map
  • 在 Windows 上设置 Python 终端编码

    我碰巧在 Windows 上的 Python 终端中设置字符编码失败 根据官方指南 这是小菜一碟 coding utf 8 好的 现在测试 print 生产一块mojibake 我做错了什么 P S 如果重要的话 IDE 是 Visual
  • 是否有与 tab20c 类似且颜色数量更多的调色板?

    这是参考关于颜色图 Here s the tab20c colormap 我想要一个类似的颜色图 这样每种颜色都彼此不同 但它应该包含 20 多种颜色 还有其他选择吗 如果您能找到您喜欢的不同颜色图您链接的页面 您可以使用轻松生成自己的分段
  • selenium-server-standalone 和 selenium-server 有什么区别?

    我可以在 Maven Central 存储库中看到两个存储库 请澄清两个罐子之间的区别 这在硒文档 您可能需要也可能不需要 Selenium 服务器 具体取决于您的方式 打算使用Selenium WebDriver 如果您的浏览器和测试都可
  • 如何使用 Wea​​therKit Swift 框架在小部件扩展中获取天气?

    我无法使用小组件扩展中的 WeatherKit 框架获取天气 这是我为本示例创建的一个项目 该小部件显示样本位置的湿度 这是代码 import WidgetKit import SwiftUI import WeatherKit impor
  • 在 BlackBerry JDE 4.5.0 的状态栏添加通知图标

    我正在编写一个 Java 应用程序黑莓JDE 4 5 将在启动时开始侦听某些事件 我想在状态栏显示一个小图标 我知道 BlackBerry API 4 6 0 版本支持 ApplicationIcon ApplicationIndicato
  • 加密(模式和填充)

    我的任务是编写一个涉及加密的小型 Java 控制台应用程序 我对加密不熟悉 所以我必须先阅读一些内容 到目前为止 给出的高级要求是应使用 AES 256 生成一次性密钥来加密文件 之后 应使用接收者的公钥 RSA 2048 来加密该 AES
  • 是否有任何“DOM 更改”事件? [复制]

    这个问题在这里已经有答案了 可能的重复 检测 DOM 中的变化 我需要设置一个事件处理程序 每当在 DOM 上添加 更改 删除某些内容时 该事件处理程序就会触发 这个答案在我的情况下不起作用 第三方开发人员可以修改 DOM 每次 DOM 更
  • 使用文件字段保存节点

    我正在为 Drupal 站点创建批量上传功能 使用 flash 我可以将文件上传到特定的 url 然后由该 url 处理这些文件 我想要做的不仅仅是上传文件 而是创建一个特定类型的节点 并将文件保存到已使用 CCK 设置的文件字段中 由于这