【问题标题】:Save Canvas using Codeigniter使用 Codeigniter 保存画布
【发布时间】:2015-11-16 02:20:44
【问题描述】:

我使用this 视频教程系列创建了 HTML5 画布绘图应用程序。现在我想使用 codeigniter 将其保存为数据库中的图像。我还希望允许用户在将其保存到数据库之前输入该图像的名称。我我是 codeigniter 的新手。谁能帮我解决这个问题。这是我到目前为止所做的事情

html代码 .....................

<div class="col-lg-3">
      <div id="toolbar">    
          <div id="rad">
              Radius <span id="radval">10</span>
                  <div id="decrad" class="radcontrol">-</div>
                  <div id="incrad" class="radcontrol">+</div>
                  <div id="colors"></div>
                  <div id="save">Save</div>
          </div>
      </div>
          <canvas id="canvas"></canvas>
</div>

用于保存的javascript代码 .....................

var saveButton=document.getElementById('save');
    saveButton.addEventListener('click',saveImage);
    function saveImage(){
        var data=canvas.toDataURL();
        var request=new XMLHttpRequest();

        request.onreadystatechange=function(){
            if(request.readyState==4&& request.status==200){
               var response= request.responseText;
                console.log(response);
            }
        }

        request.open('POST','http://localhost/cafdc/MainController/save',true);
        request.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        request.send('img='+data);
    }

【问题讨论】:

    标签: php ajax html codeigniter html5-canvas


    【解决方案1】:

    CodeIgniter 有一些用于图像处理的内置库,例如裁剪、调整大小等。您可以将图像保存在名称中,或者将其路径保存在数据库中,而不是图像必须保存在数据库中,这不是首选,而且是不好的做法。

    为了在 CI 中工作,您必须像这样创建控制器

    <?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    ini_set("display_errors",1);
    
    
    
        class Image_upload extends CI_Controller {
    
    function __construct()
         {
              // Call the Model constructor
              parent::__construct();
              $this->load->helper(array('form', 'url'));
              $this->load->model('your_model');
    
    
    
         }
    
    
    public  function index() {
    
            $this->load->view('header');
            $this->load->view('your_view');
    
        }// index function ends
    
    function doupload() {
    
    //set preferences
            $config['remove_spaces']=TRUE;
            $config['encrypt_name'] = TRUE; // for encrypting the name
            $config['upload_path'] = LARGEPATH;
            $config['allowed_types'] = 'jpg|png|gif';
            $config['max_size']    = '78000';
    
    //load upload class library
            $this->load->library('upload', $config);
    
            //$this->upload->do_upload('filename') will upload selected file to destiny folder
            if (!$this->upload->do_upload('filename'))
            {
                // case - failure
                $upload_error = array('error' => $this->upload->display_errors());
                $this->load->view('some_view', $upload_error);
            }
            else
            {
                // case - success
            }
    

    //模型

        class Your_Model extends CI_Model {
    
            //table name
            private $file = 'files';   // files    
    
            function save_files_info($files) {
                //start db traction
    }
    

    您的代码上方将是控制器中加载的视图 进一步可以给你参考

    http://www.tutsmore.com/tutorials/codeigniter-image-upload-with-mysql/从这里开始

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 2012-07-26
      • 2017-02-28
      • 2015-04-09
      • 2013-03-23
      • 1970-01-01
      • 2013-03-02
      • 2012-10-25
      相关资源
      最近更新 更多