使用xety / cake3-upload插件时文件无法上传

时间:2015-12-12 17:52:03

标签: cakephp cakephp-3.1 cakephp-3.x

我无法在CakePHP中将文件从一个文件夹上传到另一个文件夹。这是我的代码。

首先我加载了插件并在MYSQLI_BOTH

中添加了此代码
ProductsTable.php

然后我添加了$this->addBehavior('Xety/Cake3Upload.Upload', [ 'fields' => [ 'productimg_file' => [ 'path' => 'uploads/avatar/:id/:md5' ] ] ]);

add.cpt

文件仍然没有移到<?php echo $this->Form->input('productcode'); echo $this->Form->input('productname'); echo $this->Form->input('productprice'); echo $this->Form->input('quantity'); echo $this->Form->input('productdesc'); echo $this->Form->input('productimg_file',['type' => 'file']); ?> 目录。

在这里输入代码 公共函数add()     {

webroot

3 个答案:

答案 0 :(得分:0)

您的观点似乎不完整。没有$this->Form->create()

plugin instructions提到您必须将表单设置为接受文件:

$this->Form->create($foo, ['type'=>'file']);
// .. or ..
$this->Form->create($foo, ['enctype' => 'multipart/form-data']);

上传默认存储在/app/webroot/img/下。确保此文件夹可由Apache或Nginx写入。

答案 1 :(得分:0)

我已通过该插件成功上传。一开始,我是你的错误,但我修复了它。我的步骤......

内:CakePHP 3.2红色天鹅绒

  1. 下载源代码 复制 UploadBehavior.php / src / Model / Behavior

  2. "xety/cake3-upload": "1.*"(带双引号“”)粘贴到“require-dev”中的/config/bootstrap.php:{...},

  3. 例如:

    "require-dev": {
            "psy/psysh": "@stable",
            "cakephp/debug_kit": "~3.2",
            "cakephp/bake": "~1.1",
            "xety/cake3-upload": "1.*"
        },
    
    1. 打开终端(窗口cmd)类型:

      作曲家更新

    2. 注意:如果你没有作曲家,请谷歌并安装它。

      =&GT;我知道1号和2号是相同的,但我确实做到了。

      1. 配置为插件手册。 以下配置位于 Model / Table / model_nameTable.php NOT Model / Entity / model.php
      2. 例如:

        $this->addBehavior('Xety/Cake3Upload.Upload', [
                'fields' => [
                    'avatar' => [
                        'path' => '/img/avatars/:id/:md5'
                            ]
                        ]
                    ]
                );
        
        1. 使用

          设置更新网址

          '/ IMG /文件夹名/:ID /:MD5'

        2. 例如:

          '/img/avatars/:id/:md5'
          
          1. 确保视图中的FORM定义为:

            $ this-&gt; Form-&gt; create($ user,['enctype'=&gt;'multipart / form-data'])

          2. 并且输入文件名称正确:

            $this->Form->file('fieldname_file');
            

            例如:

            $this->Form->file('avatar_file');
            

            不需要从控制器中调用任何内容,当您提交表单时,它会自动上传。

            祝你好运!

答案 2 :(得分:0)

_file是默认后缀,您只能在.ctp文件中使用。不在模特中。 改变你在模特中的行为。希望这会有所帮助。

$this->addBehavior('Xety/Cake3Upload.Upload', [
    'fields' => [
        'productimg' => [
            'path' => 'uploads/avatar/:id/:md5'
        ]
    ]
]);