Codeigniter: загрузка нескольких файлов

Я пробовал многократные загрузчики файлов, которые могут быть интегрированы с codeigniter как

  • pulpload
  • загрузка файла jquery

Даже при том, что они прекрасно работают в чистой среде php, я не мог заставить их работать в среде codeigniter. Я пробовал это в течение двух дней... пробовал много статей, которые были в github и блогах... Но я не мог сделать это в рамках codeigniter.. Если кто-то может сказать мне это шаг за шагом или если есть учебник для этого, Помогите мне, пожалуйста. Я новичок в Codeigniter..

Новое: я скачал плагин bluequ Jquery-File-Upload и перешел по этой ссылке как есть. https://github.com/blueimp/jQuery-File-Upload/wiki/Latest-jQuery-File-Upload-easy-integration-with-codeigniter

Когда я выбираю файл и нажимаю "загрузить" в Chrome, он говорит:

Error SyntaxError: Unexpected token <

В Firefox это говорит:

Error SyntaxError: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Я проверил разницу между использованием его на моем сервере и на демонстрационном сервере, на моем сервере в firebug возвращаемый POST - это весь index.html... но на демонстрационном сервере он возвращает данные JSON..

Вот модифицированный раздел js/main.js, который я изменил:

$(function () {
'use strict';

// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
    // Uncomment the following to send cross-domain cookies:
    //xhrFields: {withCredentials: true},
    url: 'upload/do_upload'
});

// Enable iframe cross-domain access via redirect option:
$('#fileupload').fileupload(
    'option',
    'redirect',
    window.location.href.replace(
        /\/[^\/]*$/,
        '/cors/result.html?%s'
    )
);

if (window.location.hostname === 'blueimp.github.io') {
    // Demo settings:
    $('#fileupload').fileupload('option', {
        url: '//jquery-file-upload.appspot.com/',
        // Enable image resizing, except for Android and Opera,
        // which actually support image resizing, but fail to
        // send Blob objects via XHR requests:
        disableImageResize: /Android(?!.*Chrome)|Opera/
            .test(window.navigator.userAgent),
        maxFileSize: 5000000,
        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
    });
    // Upload server status check for browsers with CORS support:
    if ($.support.cors) {
        $.ajax({
            url: '//jquery-file-upload.appspot.com/',
            type: 'HEAD'
        }).fail(function () {
            $('<div class="alert alert-danger"/>')
                .text('Upload server currently unavailable - ' +
                        new Date())
                .appendTo('#fileupload');
        });
    }
} else {
    // Load existing files:
    $('#fileupload').addClass('fileupload-processing');
    $.ajax({
        // Uncomment the following to send cross-domain cookies:
        //xhrFields: {withCredentials: true},
        url: $('#fileupload').fileupload('option', 'url'),
        dataType: 'json',
        context: $('#fileupload')[0]
    }).always(function () {
        $(this).removeClass('fileupload-processing');
    }).done(function (result) {
        $(this).fileupload('option', 'done')
            .call(this, $.Event('done'), {result: result});
    });
}

});

Единственное, что я изменил, это сделал index.html, чтобы действие формы указывало на мой скрипт (upload/do_upload)

1 ответ

контроллер

      function add()
{
    if(isset($_POST['submit']))
    {
        $length = count($_FILES['image']['name']);
        $filename = $_FILES['image']['name'];
        $tempname = $_FILES['image']['tmp_name'];

        $allimage = array();
        foreach($filename as $key =>$value)
        {               
        move_uploaded_file($tempname[$key],'media/uploads/mobile_product/'
       .$filename[$key]);
            $allimage[] = $filename[$key];
        }
        if(!empty($allimage))
        {
            $allimage = json_encode($allimage);
        }
        else
        {
            $allimage = '';
        }

        $data['image'] = $allimage;

       $this->db->insert('table_name',$data);
       $this->session->set_flashdata('message','<div class="alert alert-success">Record has been successfully saved.</div>');
   }
 }
Другие вопросы по тегам