,我不知道用圖片上傳,以及兩個消息都出現CakePHP的:錯誤上傳
Notice (8): Undefined index: Photo [APP\Controller\PhotosController.php, line 11]
Notice (8): Undefined index: uploadImg [APP\Model\Photo.php, line 38]
我會後我的MVC,我的模型照片:
公共$ NAME =「照片「;
public $validate = array(
'uploadImg' => array(
'uploadError' => array(
'rule' => 'uploadError',
'message' => 'Fail.',
'allowEmpty' => TRUE,
),
'mineType' => array(
'rule' => array('mineType',array('image/gif','image/png','image/jpg','image/jpeg')),
'message' => 'JUST (GIF,PNG e JPG).',
'allowEmpty' =>TRUE,
),
'fileSize' => array(
'rule' => array(
'fileSize', '<=', '1MB'
),
'message' => 'Photos < 1MB',
'allowEmpty' => TRUE
),
'processCoverUpload' => array(
'rule' => 'processCoverUpload',
'message' => 'Cover Image Upload'
),
),
);
public function processCoverUpload($check = array()){
if(!is_uploaded_file($check['uploadImg']['tmp_name'])){
return FALSE;
}
if(!move_uploaded_file($check['uploadImg']['tmp_name'], WWW_ROT.'img'.DS.'uploads'.DS.$check['uploadImg']['name'])){
return FALSE;
}
$this->data[$this->alias]['uploadImg'] = 'uploads'.DS.$check['uploads']['name'];
return TRUE;
}
我PhotosController:
public function add(){
if($this->request->is('post')){
$this->Photo->create();
$data = $this->request->data['Photo'];
$this->Photo->processCoverUpload();
//debug($this->request);
if(!$data['uploadImg']['name']){
unset($data['uploadImg']);
}
if($this->Photo->save($data)){
$this->Session->setFlash(_('Imagem salva'));
return $this->redirect(array('controller'=> 'home', 'action' => 'index'));
}else{
$this->Session->setFlash(_('Não conseguimos salvar'));
}
}
}
查看:
<?php print $this->Form->create('Photo', array('action'=>'add', 'type' => 'file')); ?>
<fieldset>
<legend>Upload</legend>
<?php print $this->Form->input('Image:', array('type' => 'file', 'name' => 'uploadImg')); ?>
</fieldset>
<?php print $this->Form->end(_("Save")); ?>
我不知道我是對的,但我調用方法 「processCoverUpload()」 這種方式和我沒有通過任何參數,對嗎?
好吧,我這樣做「,但圖像並沒有顯示在文件夾!我的move_upload是正確的? – TMoraes
是的,你的move_uploaded_file看起來是正確的,你可能想知道(WWW_ROT.'img'.DS.'uploads'。 DS。$ check ['uploadImg'] ['name']); die()這個來檢查文件夾是否正確啓動,你可以像這樣設置它:'c:/'.$ check ['uploadImg'] ['name '];然後修復它對於你想要的目錄 – scx
我把die();在我的第一個子句中!is_uploaded_file,我想這就是問題了吧 – TMoraes