【问题标题】:TYPO3 file upload resource managerTYPO3 文件上传资源管理器
【发布时间】:2013-08-12 10:10:29
【问题描述】:

我按照http://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/PartIII/ResourceManagement.html做了文件上传

我有这个错误:遇到无效类型:'\TYPO3\Flow\Resource\Resource'

代码

控制器:

class Tx_PromConf_Controller_RegistrationController extends Tx_Extbase_MVC_Controller_ActionController { 
/**
    * Imports a passport
    *
    * @param Tx_PromConf_Domain_Model_Passport $passport The new passport
    * @return void
    */
    public function passportUploadAction(Tx_PromConf_Domain_Model_Passport $passport) {
        $this->passportRepository->add($passport);
        $this->forward('index');
    }
}

型号

class  Tx_PromConf_Domain_Model_Passport extends Tx_Extbase_DomainObject_AbstractEntity {

    /**
     * @var string
     */
    protected $title;

    /**
     * @var \TYPO3\Flow\Resource\Resource
     */
    protected $originalResource;

    /**
     * @param string $title
     * @return void
     */
    public function setTitle($title) {
        $this->title = $title;
    }

    /**
     * @return string
     */
    public function getTitle() {
        return $this->title;
    }

    /**
     * @param \TYPO3\Flow\Resource\Resource $originalResource
     * @return void
     */
    public function setOriginalResource(\TYPO3\Flow\Resource\Resource $originalResource) {
        $this->originalResource = $originalResource;
    }

    /**
     * @return \TYPO3\Flow\Resource\Resource
     */
    public function getOriginalResource() {
        return $this->originalResource;
    }

    /**
     * __construct
     *
     * @return void
     */
    public function __construct() {
        //Do not remove the next line: It would break the functionality
        $this->initStorageObjects();
        $this->setTitle('PassportScan');
    }

    /**
     * Initializes all Tx_Extbase_Persistence_ObjectStorage properties.
     *
     * @return void
     */
    protected function initStorageObjects() {

    }
}

表格

<f:form action="passportUpload" controller="Registration" enctype="multipart/form-data" 
            object="{passport}" objectName="passport">
        <br />
        <div>
            <f:translate key="tx_promconf_passport_upload.sentense" />
        </div>
        <br />
        <div class="max-size">
            <f:form.upload class="btn" name="originalResource" />
        </div>
        <br />
        <br />
        <div class="max-size">
            <f:form.submit name="mySubmit" class="btn btn-l" value="<f:translate key='tx_promconf_passport_upload.ok' />" />
            <input type="reset" class="btn btn-r" value="<f:translate key='tx_promconf_passport_upload.cancel' />" />    
        </div>
    </f:form>

【问题讨论】:

  • 您使用哪个 TYPO3 和 Extbase 版本?什么时候出现错误 - 调用上传表单或上传文件时?
  • TYPO3 v4.7调用上传表单时出现错误。

标签: file-upload typo3 resourcemanager typo3-flow


【解决方案1】:

如果您使用的是 TYPO3 CMS
你不会在那里找到 TYPO3\Flow\Resource\Resource 类。

因此,您必须使用 Extbase 类。如果您使用的是 TYPO3 6.x,您可能需要查看 Extbase 命名空间或此处的某处:\TYPO3\CMS\Core\Resource\ResourceInterface
但最有可能的是,最简单的方法是寻找另一个关于使用 Extbase 上传文件的教程。

如果您正在开发独立的 FLOW 应用程序,我没有准确的答案。

【讨论】:

  • 是的,我正在使用 TYPO3 CMS。但我无法在任何地方找到该资源。可能是版本的原因吧。
  • 很可能。在 4.7 中,命名空间概念的实现不一致。我建议寻找另一个教程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多