Typo3:如何上传文件并创建文件引用?

2024-04-02

我将尝试在 FE 中上传一个文件(或稍后的多个文件)。这有效,就像我当前的代码一样。但是我现在如何获取该文件的文件引用呢?

/**
 *
 * @var array $fileData
 * @var integer $feUserId
 * @return \TYPO3\CMS\Extbase\Domain\Model\FileReference
 */
private function uploadFile($fileData, $feUserId) {
    $storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
    $storage           = $storageRepository->findByUid(1); # Fileadmin = 1
    $saveFolder        = $storage->getFolder($this->settings['uploadFolder']);

    // Datei speichern
    $fileObject = $storage->addFile($fileData['tmp_name'], $saveFolder, $feUserId.'_'.$fileData['name']);

    // Dateiobjekt
    $repositoryFileObject = $storage->getFile($fileObject->getIdentifier());

    die(\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($repositoryFileObject));
    #$newFileReference = $this->objectManager->get('TYPO3\CMS\Extbase\Domain\Model\FileReference');
    #$newFileReference->setOriginalResource($repositoryFileObject);

    return $newFileReference;
}

现在应该有类似“setFileReference”的东西,但我在 API 中找不到类似的东西http://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_resource_1_1_file_reference.html http://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_resource_1_1_file_reference.html

好吧,您可能想使用以下脚本作为临时解决方案,它使用数据映射进程来创建文件引用。

$sys_file_uid = $file->getUid();
$tt_content_uid = 42;
$tt_content_pid = 1337;

// Do not directly insert a record into sys_file_reference, as this bypasses all sanity checks and automatic updates done!
$data = array();
$data['sys_file_reference']['NEW' . $sys_file_uid] = array(
    'uid_local' => $sys_file_uid,
    'table_local' => 'sys_file',
    'uid_foreign' => $tt_content_uid,
    'tablenames' => 'tt_content',
    'fieldname' => 'image',
    'pid' => $tt_content_pid,
);
$data['tt_content'][$tt_content_uid] = array('image' => 'NEW' . $sys_file_uid);

$tce = t3lib_div::makeInstance('t3lib_TCEmain'); // create TCE instance
$tce->start($data, array());
$tce->process_datamap();
if ($tce->errorLog) {
    // Error - Reference not created
    // t3lib_utility_Debug::viewArray($tce->errorLog);
}
else {
    // Success - Reference created
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Typo3:如何上传文件并创建文件引用? 的相关文章

  • TYPO3 - 如何禁用页面上特定内容元素的缓存?

    是否可以禁用页面上某一特定元素的缓存 我已经尝试过以下打字稿 如中所述这个答案 但它对我不起作用 TYPO3 v8 tt content textmedia 20 USER INT 我在用ext fluid styled content使用
  • 如何将 CropVariants 添加到 TYPO3 Flexform 中的图像字段

    我可以像这样覆盖 TCA 中图像字段的cropVaraints columnsOverrides gt image gt label gt LLL EXT myext Resources Private Language locallang
  • TYPO3 v6 中的语言切换

    切换前端语言并不像预期的那样对我有用 到目前为止我所做的 在根页面 我创建了两种网站语言 德语和英语 在打字稿模板中 我添加了以下设置 我发现其中大部分分散在网络上 config tx realurl enable 1 simulateSt
  • 在 Typoscript HMENU 中,如何强制 URL 的语言

    我有一个多语言 多站点 多域 TYPO3 4 5 实例 RealURL 让我很忙 在某些子站点中 我无法让它为语言 1 和 2 创建正确的 URL 它将导致模式 www language 2 domain com language 1 pa
  • 使用主键以外的其他内容作为 RealURL id_field

    在 TYPO3 6 2 站点中 我有以下内容postVarSets在 realurl conf php 中用于 extbase 扩展 postVarSets gt array DEFAULT gt array wba gt array ar
  • TYPO3:“access_group”字段的用途是什么?

    我不知道字段 access group int 11 DEFAULT 0 NOT NULL 的用途是什么 首先我认为这是受 user group 的限制 但有一个字段 fe group varchar 100 DEFAULT NOT NUL
  • 显示来自 EXT:news 的特定语言记录

    我正在尝试以与默认语言不同的语言显示新闻记录 但默认语言中不存在记录 多语言配置是 config sys language mode strict sys language overlay 0 页面上的插件设置为 所有语言 仅以默认语言存在
  • “无法分析类:可能未加载或没有自动加载器?”

    我用一个 viewhelper 创建了 我的第一个 扩展 糟糕 出现错误 无法分析类 My Mlv ViewHelpers Format ReplacenewlinesViewHelper 可能未加载或没有自动加载器 使用中 有新闻 nam
  • TYPO3:将插件从 USER 更改为 USER_INT 类型

    我有一个可用的 TYPO3 扩展 附有这个维基页面 http wiki orbeon com forms doc developer guide form runner typo3 extension 如何更改此扩展的代码 使其成为 USE
  • 如何使用typo3/extbase触发下载?

    我将 Typo3 与 extbase 和 Fluid 一起使用 我有一个控制器 其操作称为downloadAction 调用该操作后 系统尝试呈现下载模板 但我只想开始下载 public function downloadAction id
  • 将 TYPO3 extbase storagePageIds / storagePid 设置为当前

    我正在使用 TYPO3 扩展 feupload 它依赖于 extbase 这是我第一次接触extbase 但问题是关于 extbase 的 我希望 TYPO3 在查询中默认包含通常的 IN 当前页面 pid 检查 除非另有说明 但在 ext
  • 如何在 TYPO3 Extbase 扩展中包含或自动加载外部库? + 依赖注入?

    我正在使用 Extbase 1 4 开发 TYPO3 4 6 扩展 并且尝试包含外部库 图书馆 就我而言脸书 PHP SDK https github com facebook facebook php sdk 在下面 EXTKEY Res
  • TYPO3 可以在没有typo3temp 目录本地文件存储的情况下运行吗?

    TYPO3应该如何在基于Docker的架构上运行 例如Divio https www divio com其中 多个容器并行运行 在没有警告的情况下被回收 没有共享的本地文件存储 似乎需要写到typo3temp 以及其他一些文件位置 在 TY
  • TYPO3 v8.7 JQuery 包含在内吗?

    我将 TYPO3 版本从 6 2 31 更新到 8 7 19 现在 JS JQuery 出现了一些问题 我听说 JQuery 自动包含在新的 TYPO3 版本中 是对的吗 提前致谢 你需要更具体地回答这个问题 是的 v8 提供了 jquer
  • 在本地安装和设置 TYPO3 的最快方法是什么?

    我想在本地计算机上安装并设置 TYPO3 最佳实践和最快方法是什么 要在本地计算机上运行 TYPO3 您需要在计算机上运行 Web 服务器 这可以通过不同的方式完成 基于 Linux 的机器上的本机 Web 服务器 PHP 和数据库 虚拟机
  • 如何使用 TYPO3 extbase Fluid 正确输出 DateTime

    我在数据库中存储了两个 dateTime 对象 2014 11 03 09 00 00 2014 10 21 13 45 00 当我尝试使用 ViewHelper format date 输出它们时
  • 允许在 ckeditor 中嵌入 oembed 标签

    我想将 oembed 标签放入 TYPO3 的 ckeditor RTE 中 这样我想将像 Instagram Facebook 或 Twitter 这样的社交帖子放入一些新闻文章中 在一些文本的中间 为此 我激活了 ckeditor 的嵌
  • Typo3:如何上传文件并创建文件引用?

    我将尝试在 FE 中上传一个文件 或稍后的多个文件 这有效 就像我当前的代码一样 但是我现在如何获取该文件的文件引用呢 var array fileData var integer feUserId return TYPO3 CMS Ext
  • TYPO3:如何将页面内容插入模板

    我有一些内容想要出现在 TYPO3 网站的多个页面上 我可以将其插入模板中 但我还希望该内容可以在富文本编辑器中编辑 所以我有了创建隐藏页面的想法 但我不知道如何将此内容插入到模板中 是否需要select打字稿声明 另外 作为后续问题 我可
  • TYPO3 6 需要哪些 PHP 函数?

    我刚刚全新安装了 TYPO3 6 1 系统环境检查告诉我 我的服务器上禁用了某些 PHP 功能 我在我的服务器上使用 Froxlor 来管理域等 因此 我可以完全控制这台机器 但我不确定哪些功能是真正必要的 有些功能对我来说似乎相当危险 所

随机推荐