2013-08-12 243 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