我试图上传图像使用cakephp 3.我在蛋糕2. x中尝试过,它在那里工作得很好,但在蛋糕3.0中不行。我的图像被上传,但它没有被保存在数据库中。
查看
<div class="col-lg-8">
<div class="articles form large-9 medium-8 columns content">
<?= $this->Form->create($article,['type' => 'file']) ?>
<fieldset>
<legend><?= __('Add Article') ?></legend>
<?php
echo $this->Form->input('title', [ "class" => "form-control"]);
echo $this->Form->input('body', [ "class" => "form-control"]);
echo $this->Form->file('image',[ "class" => "form-control"]);
?>
</fieldset>
<?= $this->Form->button(__('Submit'), ["class" => "btn btn-primary"]) ?>
<?= $this->Form->end() ?>
</div>
控制器
public function add() {
$article = $this->Articles->newEntity();
if ($this->request->is('post')) {
$filepath = getcwd() . '/uploads/' . $this->request->data['image']['name'];
$filename = $this->request->data['image']['name'];
$article = $this->Articles->patchEntity($article, $this->request->data);
if ($this->Articles->save($article)) {
move_uploaded_file($this->request->data['image']['tmp_name'], $filepath);
$this->Flash->success(__('The article has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The article could not be saved. Please, try again.'));
}
}
$this->set(compact('article'));
$this->set('_serialize', ['article']);
}
模型
namespace App\Model\Table;
use App\Model\Entity\Article;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;
类ArticlesTable扩展表{
公共函数初始化(数组$config){parent::initialize($config);
$this->table('articles');
$this->displayField('title');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->hasMany('Comments', [
'foreignKey' => 'article_id'
]);
}
public function validationDefault(Validator $validator)
{
$validator
->add('id', 'valid', ['rule' => 'numeric'])
->allowEmpty('id', 'create');
$validator
->allowEmpty('title');
$validator
->allowEmpty('body');
$validator
->add('image', [
'fileSize' => [
'rule' => [
'fileSize', '<', '5MB'
],
'message' => 'Please upload file smaller than 5MB'
],
'mimeType' => [
'rule' => [
'mimeType', ['image/jpeg','image/png','image/jpg']
],
'message' => 'Please upload only png images'
]
]
)
->requirePresence('image', 'create')
->notEmpty('image');
return $validator;
}
}
我自己也找到了解决办法,但我不确定这是否正确。但通过这样做,我的问题已经解决了。
public function add() {
$article = $this->Articles->newEntity();
if ($this->request->is('post')) {
$imageName = $this->request->data['image']['name'];
$filepath = getcwd() . '/uploads/' . $imageName;
$article = $this->Articles->patchEntity($article, $this->request->data);
$article->image = $imageName ;
if ($this->Articles->save($article)) {
move_uploaded_file($this->request->data['image']['tmp_name'], $filepath);
chmod($filepath, 0777);
$this->Flash->success(__('The article has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The article could not be saved. Please, try again.'));
}
}
$this->set(compact('article'));
$this->set('_serialize', ['article']);
}
问题内容: 我的客户在php + mysql中创建了一个脚本,该脚本将图像直接保存在数据库中,并且每个图像都有这样的url:www.example.com/image.php?id=421 您认为这是一个非常错误的解决方案?我应该重建所有站点吗? 每天大约有1000次访问,数据库中大约有600张图像。 问题答案: 图像文件是文件,除非有充分的理由将它们存储在数据库中,否则它们应属于文件系统,在文件
当我尝试将Point datatype持久化到postgres DB时,它失败了,错误org.postgresql.util.PSQLE:错误: ERROR:列“Point Col就列”是点类型,但表达式是几何类型 这是我的波乔快照 这是我的驱动程序和方言属性 驱动程序org.postgresql. dialect = org . hibernate . spatial . dialect . p
我需要在数据库中按kb保存大小,以便在前端查看,这是我正在使用的控制器。我使用的是Laravel 5.8 所以我的问题是,拉雷维尔是否提供了处理这种情况的任何假象?或者任何其他框架都有更适合问题的功能是什么?
我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos
问题内容: 我必须使用JavaScript创建一个表单,用户将上载JPG文件并与其他信息(例如名称,电子邮件等)一起提交。当用户单击提交时,表单中的所有信息将被加载到值对象中。对于图像文件,我将其设置为。 所以假设: 我还设置了一个servlet来处理提交,但是我不确定如何开始。上传如何进行?用户提交时,如何获取图像信息?这是屏幕截图:http : //imageshack.us/f/32/776
我在后端使用Rails API,在前端使用ReactJS。我也使用载波在后端处理我的图像。我试图上传我的图像并将其发送到后端。使用简单的超文本标记语言上传器在前端捕获图像文件。 这是我的uploader.jsx 以上代码是此解决方案的精确副本。我使用formData和axios将数据推送到后端。但数据在数据库中存储为“nil”值。安慰log(formData)给出一个空哈希。 我在后端的控制器代码