Я создал HTML5 Canvas Drawing App, используя этот серия видеоуроков. Теперь я хочу сохранить его как изображение в базе данных с помощью 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);
}
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/ начать отсюда
Других решений пока нет …