Php 是否允许类型3流动资源没有结束?

Php 是否允许类型3流动资源没有结束?,php,frameworks,typo3,typo3-flow,Php,Frameworks,Typo3,Typo3 Flow,我们使用TYPO3 Flow 2.3集成资源对象上传项目中的任何类型的文件。我们的文件对象中的定义是: /** * @var \TYPO3\Flow\Resource\Resource * @ORM\ManyToOne */ protected $originalresource; 而流体的叫声是这样的: <a class="filelink" data-icon="{file.filetype}" href="{f:uri.resource(resource: file.orig

我们使用TYPO3 Flow 2.3集成资源对象上传项目中的任何类型的文件。我们的
文件
对象中的定义是:

/**
 * @var \TYPO3\Flow\Resource\Resource
 * @ORM\ManyToOne
 */
protected $originalresource;
而流体的叫声是这样的:

<a class="filelink" data-icon="{file.filetype}" href="{f:uri.resource(resource: file.originalresource)}" target="_blank">{file.name}</a>

\u Resources/Persistent/
中的
主机
文件创建的符号链接使用散列命名,然后是一个点,文件结尾不指向实际文件。实际文件存在。

这是一个错误,您可以在此处报告:

在Flow3.x中,它工作得很好,但在资源管理方面发生了重大变化

在Web/.htaccess中添加一行应该可以解决这个问题,但我不知道这是最好的解决方案

# Perform rewriting of persistent resource files
RewriteRule ^(_Resources/Persistent/.{40})/.+(\..+) $1$2 [L]

# Add this line - consider security
RewriteRule ^(_Resources/Persistent/.{40})/.+ $1. [L]

并回答为什么会发生这种情况-持久性资源默认存储在
Data/persistent/resources/
中,并且在中有
Web/\u resources/persistent/.extension
中的符号链接。因此,标准符号链接如下所示:

0c73666545d393d3d2d6b5a2039dceab56fb3aa2.txt -> /www/FLOW/23/Data/Persistent/Resources/0c73666545d393d3d2d6b5a2039dceab56fb3aa2
若文件并没有扩展名,那个么在文件的末尾只有一个点

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3. -> /www/FLOW/23/Data/Persistent/Resources/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

所以实际上ResourceViewHelper(FileSystemPublishingTarget)返回的链接是正确的,但上面的第一个重写规则需要扩展。添加第二个,您可以捕获没有扩展名的文件,然后只添加。在末尾使用哈希和点匹配正确的符号链接。

因此建议升级到3.x版?这取决于您的项目,具体取决于您自己。我在当前项目中使用3.x,但我还没有升级以前的版本。检查-玩它并做出决定。资源管理、安全框架和添加对php7的支持方面的变化说明了3.x和升级应该并不困难。。但现在,这一行in.htaccess应该可以解决您的问题。
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3. -> /www/FLOW/23/Data/Persistent/Resources/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3