解码图像base64 codeigniter并将其保存到文件和数据库中

时间:2017-01-11 07:42:34

标签: php mysql codeigniter base64

我想创建一个codeigniter控制器,它可以检索“POST”base64图像,对其进行解码,然后将其保存到本地文件夹中,然后将该路径保存到我的MySQL中。

我在这一点上陷入困​​境。

你能不能给我一些这方面的参考资料?

2 个答案:

答案 0 :(得分:0)

以下代码段是CodeIgniter官方用户文档中的copy = paste。

<?php

class Upload extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
                $this->load->helper(array('form', 'url'));
        }

        public function index()
        {
                $this->load->view('upload_form', array('error' => ' ' ));
        }

        public function do_upload()
        {
                $config['upload_path']          = './uploads/';
                $config['allowed_types']        = 'gif|jpg|png';
                $config['max_size']             = 100;
                $config['max_width']            = 1024;
                $config['max_height']           = 768;

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

                if ( ! $this->upload->do_upload('userfile'))
                {
                        $error = array('error' => $this->upload->display_errors());

                        $this->load->view('upload_form', $error);
                }
                else
                {
                        $data = array('upload_data' => $this->upload->data());

                        $this->load->view('upload_success', $data);
                }
        }
}
?>

CodeIgniter确实有developers.google.com/drive/android/auth非常好的文档,我建议你快速浏览一下。

您必须仔细检查的一部分或修改如下:

$config['file_name']            = 'a_'.md5(microtime()).'.jpg';

告诉codeigniter将文件保存在所需的任何本地路径中,然后从这里将数据保存到数据库中,如下所示:

$result = $this->db->query('INSERT INTO AVATARS VALUES (NULL, 'user1', '" . $config['file_name'] . "') ');

请注意,这只是伪代码,并未在任何生产环境中进行过测试;但是,应该完美地工作。

祝你好运

答案 1 :(得分:0)

$base应该有base64编码的图像字符串:

$base = $_POST["profile_image"];
$filename = $_POST["file_name"];
$filename = $_POST["user_id"];
$binary = base64_decode($base);
header('Content-Type: bitmap; charset=utf-8');
$file = fopen('./Images/'.$filename, 'wb');
fwrite($file, $binary);
fclose($file);