2013-08-12 155 views
0

我根据http://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/PartIII/ResourceManagement.htmlTYPO3文件上传资源管理器

我有这个误文件上传:遇到无效类型: '\ TYPO3 \流量\资源\资源'

代码

的Controler:

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> 
+0

您使用哪种TYPO3和Extbase版本?何时发生错误 - 何时调用上传表单或上传文件? – Mateng

+0

TYPO3 v4.7当我调用上传表单时发生错误。 – tttpapi

回答

0

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

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

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

+0

是的,我正在使用TYPO3 CMS。但我无法在任何地方找到该资源。也许是因为版本。 – tttpapi

+0

最有可能的。在4.7中,名称空间概念没有一致地实现。我建议寻找另一个教程。 – Mateng