2013-07-13 4 views
-1

Как загрузить несколько изображений в базу данных mysql по html5 (javascript) и php (codeigniter).Загрузите несколько изображений в базу данных mysql по php

Что мне делать, php (codeigniter)? (Я не могу изменить яваскрипт кода, пожалуйста, дайте мне пример)

HTML:

<form action="#" method="post" enctype="multipart/form-data"> 
    <input name="name[]" type="file" id="fileElem" multiple accept="image/*" style="display:none" onchange="handleFiles(this.files)"> 
</form> 

Javascript как:

function doClick() { 
    var el = document.getElementById("fileElem"); 
    if (el) { 
    el.click(); 
    } 
} 
function handleFiles(files) { 
    var d = document.getElementById("fileList"); 
    if (!files.length) { 
    d.innerHTML = "<p>No files selected!</p>"; 
    } else { 
    var list = document.createElement("ul"); 
    d.appendChild(list); 
    for (var i=0; i < files.length; i++) { 
     var li = document.createElement("li"); 
     list.appendChild(li); 

     var img = document.createElement("img"); 
     img.src = window.URL.createObjectURL(files[i]);; 
     img.height = 60; 
     img.onload = function() { 
     window.URL.revokeObjectURL(this.src); 
     } 
     li.appendChild(img); 

     var info = document.createElement("span"); 
     info.innerHTML = files[i].name + ": " + files[i].size + " bytes"; 
     li.appendChild(info); 
    } 
    } 
} 

я попытался как:

//$config['upload_path'] = './uploads/'; 
//$config['allowed_types'] = 'gif|jpg|png'; 
//$this->upload->initialize($config); 
//$this->load->library('upload'); 

    for($i=0; $i<count($_FILES['name']); $i++){ 
     if ($_FILES['error'][$i] == 0) { 
      $this->db->insert('table', $_FILES['name'][$i]); // this don't work 
     } 
    } 
+0

Может быть, вы должны попробовать использовать '$ _FILES [ ''] upimg' – Musa

+0

@ Musa - Это была моя ошибка. –

ответ

0

вы нужно построить массив для вставки данных в таблицу, я предположил, что у вас есть два поля: name и data. Пожалуйста, исправьте его по мере необходимости.

for($i=0; $i<count($_FILES['name']['name']); $i++){ 
     if ($_FILES['name']['error'][$i] == 0) { 
      $dataf = file_get_contents($_FILES['name']['tmp_name'][$i]); 
      $data = array('file_name' => $_FILES['name']['name'][$i], 'data' => $dataf); 
      $this->db->insert('table', $data); 
     } 
    } 
Смежные вопросы