我无法在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
答案 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红色天鹅绒
下载源代码 复制 UploadBehavior.php 到 / src / Model / Behavior
将"xety/cake3-upload": "1.*"
(带双引号“”)粘贴到“require-dev”中的/config/bootstrap.php:{...},
例如:
"require-dev": {
"psy/psysh": "@stable",
"cakephp/debug_kit": "~3.2",
"cakephp/bake": "~1.1",
"xety/cake3-upload": "1.*"
},
打开终端(窗口cmd)类型:
作曲家更新
注意:如果你没有作曲家,请谷歌并安装它。
=&GT;我知道1号和2号是相同的,但我确实做到了。
例如:
$this->addBehavior('Xety/Cake3Upload.Upload', [
'fields' => [
'avatar' => [
'path' => '/img/avatars/:id/:md5'
]
]
]
);
使用
设置更新网址'/ IMG /文件夹名/:ID /:MD5'
例如:
'/img/avatars/:id/:md5'
确保视图中的FORM定义为:
$ this-&gt; Form-&gt; create($ user,['enctype'=&gt;'multipart / form-data'])
并且输入文件名称正确:
$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'
]
]
]);