CodeIgniter中的图像上载问题

时间:2017-04-13 13:31:55

标签: php codeigniter

我正在CodeIgniter中处理图片上传。在这方面,我使用以下代码。

$config['upload_path'] = './files/';
$config['allowed_types'] = 'gif|jpg|png|doc|txt';

$this->load->library('upload', $config);

if (!$this->upload->do_upload('userfile'))
{
      $error = $this->upload->display_errors();
      echo json_encode(array('success'=>false,'message'=>$error)); //this line is not working.
}
else
{
      echo json_encode(array('success'=>true,'message'=>lang('items_successful_updating').' '. $item_data['name'],'item_id'=>$item_id));
} 

如果我使用下面的代码,那么它正在运作。

echo json_encode(array('success'=>false,'message'=>'abcdef')); 

为什么会这样?

1 个答案:

答案 0 :(得分:1)

$this->upload->display_errors();返回错误数组,包含错误代码和错误消息等.Json Encoding可能会在多维数组的情况下导致问题。你只能使用错误信息,我猜你编码结构。

正确的方法是:

$config['upload_path'] = './files/';
$config['allowed_types'] = 'gif|jpg|png|doc|txt';

$this->load->library('upload', $config);

if (!$this->upload->do_upload('userfile'))
{
      $error = $this->upload->display_errors();
      echo json_encode(array('success'=>false,'message'=>$error['error'])); //this line is not working.
}
else
{
      echo json_encode(array('success'=>true,'message'=>lang('items_successful_updating').' '. $item_data['name'],'item_id'=>$item_id));
}