php CodeIgniter - 如何显示来自 do_upload 的错误消息
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19168581/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
CodeIgniter - How to show error message from do_upload
提问by kamgfx
i want to show the success message of a content insert on a redirect link.here is my code of controller:-
我想在重定向链接上显示内容插入的成功消息。这是我的控制器代码:-
public function do_upload($field) {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100000';
$config['max_width'] = '3000';
$config['max_height'] = '3000';
$this->load->library('upload', $config);
if (!$this->upload->do_upload($field)) {
$error = array('error' => $this->upload->display_errors());
return $error;
} else {
$updata =$this->upload->data();
$data = $updata['raw_name'].$updata['file_ext'];
return $data;
}
}
public function index() {
$this->load->model('blog');
if(isset($_POST['post']) && (!empty($_POST['post']) || strlen($_FILES['inputUpProfile']['name']) > 0) ){
if(strlen($_FILES['inputUpProfile']['name']) > 0)
{
$pic = $this->do_upload('inputUpProfile');
print_r($pic);
if ($this->input->post('post') == ''){$type="image";} else {$type="image-with-text";}
}
else {$pic = ""; $type = "text"; }
$result = $this->blog->addPost($_SESSION['user_id'], $type , $this->input->post('post'),$pic);
}
$this->template->build('home_view',$this->data);
}
when upload image big than 3000 its was show me this message
当上传大于 3000 的图像时,它会向我显示此消息
Array ( [error] =>
The filetype you are attempting to upload is not allowed.
)
how can i read this error in my view ??
我怎么能在我看来读这个错误?
================================================
================================================
Update :-
更新 :-
the error messagelike this:-
错误信息是这样的:-
Array ( [error] =>
The filetype you are attempting to upload is not allowed.
)
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: mysql/mysql_driver.php
Line Number: 552
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at E:\AppServ\www\cc\ccc\application\controllers\home.php:83)
Filename: core/Common.php
Line Number: 442
A Database Error Occurred
Error Number: 1054
Unknown column 'Array' in 'field list'
INSERT INTO `events` (`ev_user_id`, `ev_type`, `ev_text`, `ev_pic`, `ev_date`) VALUES (445, 'image', '', Array, '2013-10-03 23:51:47')
Filename: E:\AppServ\www\cc\ccc\system\database\DB_driver.php
Line Number: 330
回答by ABorty
if you got error like
如果你有这样的错误
Array ( [error] =>
The filetype you are attempting to upload is not allowed.
)
in the controller you can do like
在控制器中你可以这样做
if (!$this->upload->do_upload($field)) {
$error = array('error' => $this->upload->display_errors());
$this->session->set_flashdata('error',$error['error']);
redirect('your_function_which_loads_the_view','refresh');
}
and in the view page do something like
并在视图页面中执行类似操作
if($this->session->flashdata('error')){echo $this->session->flashdata('error');}
please let me know if you face any problem.
如果您遇到任何问题,请告诉我。
回答by jeyglo
just display the error in your view, here the steps: first load session library, do it at folder config, file aoutoload.php
只需在您的视图中显示错误,步骤如下:首先加载会话库,在文件夹 config 中执行,文件 aoutoload.php
$autoload['libraries'] = array('session');
in the controller as you have, change this piece of code for this
在您拥有的控制器中,为此更改这段代码
if (!$this->upload->do_upload($field)) {
$this->session->set_flashdata( 'error_msg', $this->upload->display_errors() );
redirect( base_url( 'your view' ) );
}
in your view file...
在您的视图文件中...
<?php
if ( $this->session->flashdata( 'error_msg' ) ) {
echo $this->session->flashdata('error_msg');
}
?>
回答by stormdrain
$pic = $this->do_upload('inputUpProfile');
$this->data['upload_error'] = $pic['error'];
Then in the view:
然后在视图中:
echo $upload_error;