TYPO3文件上传资源管理器

时间:2013-08-12 10:10:29

标签: file-upload typo3 resourcemanager typo3-flow

我根据http://docs.typo3.org/flow/TYPO3FlowDocumentation/TheDefinitiveGuide/PartIII/ResourceManagement.html

进行了文件上传

我遇到此错误:遇到无效类型:'\ TYPO3 \ Flow \ Resource \ Resource'

代码

的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>

1 个答案:

答案 0 :(得分:0)

如果您使用 TYPO3 CMS
你不会在那里找到课程TYPO3\Flow\Resource\Resource

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

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