当前位置:首页 > 技术文章 > WEB开发 > PHP

ci框架教程:实现图片文件上传的实例

发布时间:2017-12-09 14:43:47 作者:superl 来源:TOP技术学院 点击量:

ci框架是笔者最喜欢使用的php框架之一,安全,方便,高效。

经常发现初学者在使用CI框架进行图片/文件上传的地方有各种问题,下面就分享一段项目中实现图片上传的代码。

	public function sendimg() {
        $msg_fid = $this->user_id;
        $msg_tid = (int)$this->input->post('msg_tid');

        if (!empty($msg_tid) ) {
            $config['upload_path'] = './public/uploads/';
            //$config['upload_path']      = $_SERVER['DOCUMENT_ROOT']."/public/uploads/";
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = 5120;
            $config['max_width'] = 0;
            $config['max_height'] = 0;

            $file_name = $msg_fid.date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999);
            $config['file_name'] = $file_name;

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

            if (!$this->upload->do_upload('msg_image')) {
                $error = $this->upload->display_errors();
                $res_array = array(
                    'code' => 501,
                    'message' => '上传失败' . $error,
                    'reply' => ''
                );
            } else {
                $upload_data = $this->upload->data();
                $file_url = '/public/uploads/'.$upload_data['file_name'];
                $msg_content = '[imgtag]' . $file_url . '[/imgtag]';

                $result_send = $this->Chat_model->send($msg_fid, $msg_tid, $msg_content);
                if ($result_send) {
                    $res_array = array(
                        'code' => 200,
                        'message' => $msg_content,
                        'reply' => ''
                    );
                } else {
                    $res_array = array(
                        'code' => 502,
                        'message' => '发送失败',
                        'reply' => ''
                    );
                }
            }
        } else {
            $res_array = array(
                'code' => 503,
                'message' => '上传失败,内容为空,或客服编号不存在!',
                'reply' => ''
            );
        }
        echo json_encode($res_array);
    }

 

上面的代码是以前开发的客服系统中截取的一段代码,有部分代码是业务逻辑的一部分,大家可以只看上传部分的代码即可。

大家可以看到,在$config['upload_path']这里,我使用了两种方式,注释的那种也是可以的。这个地方的配置也是新手比较容易出现错误的地方。

同时,也加上了上传的错误提示,如果上传失败,好歹也知道是什么原因导致的失败。

 

需要注意的是,图片上传的表单,图片字段的name值需要为msg_image

和$this->upload->do_upload('msg_image')中传递的值需要保持一致。

本文链接:http://www.topjishu.net/article/55.html,如有转载,请注明出处!


关键词:ci框架,图片文件,ci框架教程


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表