作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是蛋糕 PHP 的新手,我需要一些上传图片的帮助。我需要允许用户上传图像,我希望该图像保存在目录中(www/CakePHP/app/webroot/img/),并且还希望数据库存储图像的文件路径。这是我到目前为止所得到的
产品ADD.ctp:
<div class="products form">
<?php echo $this->Form->create('Product'); ?>
<fieldset>
<legend><?php echo __('Add Product Details'); ?></legend>
<?php
echo $this->Form->input('product_name', array('required'=>false));
echo $this->Form->input('product_model_number', array('required'=>false));
echo $this->Form->input('product_brand', array('required'=>false));
echo $this->Form->input('product_description', array('required'=>false));
echo $this->Form->input('price_bronze', array('required'=>false));
echo $this->Form->input('price_silver', array('required'=>false));
echo $this->Form->input('price_gold', array('required'=>false));
echo $this->Form->input('upload', array('type'=>'file'));
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>
public function add() {
if ($this->request->is('post')) {
$this->Product->create();
if ($this->Product->save($this->request->data)) {
$this->Session->setFlash(__('The product has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The product could not be saved. Please, try again.'));
}
if(!empty($this->data))
{
//Check if image has been uploaded
if(!empty($this->data['products']['upload']['name']))
{
$file = $this->data['products']['upload']; //put the data into a var for easy use
$ext = substr(strtolower(strrchr($file['name'], '.')), 1); //get the extension
$arr_ext = array('jpg', 'jpeg', 'gif'); //set allowed extensions
//only process if the extension is valid
if(in_array($ext, $arr_ext))
{
//do the actual uploading of the file. First arg is the tmp name, second arg is
//where we are putting it
move_uploaded_file($file['tmp_name'], WWW_ROOT . 'CakePHP/app/webroot/img/' . $file['name']);
//prepare the filename for database entry
$this->data['products']['product_image'] = $file['name'];
}
}
//now do the save
$this->products->save($this->data) ;
}
}
}
最佳答案
在带有文件输入的 cakephp 中创建新表单时,您必须设置 'enctype'=>'multipart/form-data'
代码应该是这样的:
<?php echo $this->Form->create('Product',array('enctype'=>'multipart/form-data')); ?>
关于image - 蛋糕PHP图片上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353568/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!