Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка изображений на сайт 
:(
    Опции темы
shahin87
Дата 23.2.2017, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.2.2017

Репутация: нет
Всего: нет



Здравствуйте нужно загрузить несколько или одно (по выбору) изображений на сайт. скрипт есть файлы выбираются, но я не могу их передать на обработчик на php чтобы загрузить на сервер. И подскажите пожалуйста как сделать чтобы все передовалось на php  не аяксом, а просто переходило как обычно переходит форма методом пост.
Вот сам скрипт:
 
Код

jQuery(function($) {
/// определение jQuery - начало



    //объявлем 2 переменных в которые будет помещён массив файлов после выбора в поле <input type="file">

    var otzivi_files;
    var otzivi_files_tmp = [];
    function prepareUpload(event)
    {
        /*
            одна переменная временная
            в неё заносится список полученные сразу после выбора файлов
            вторая содержит весь список включая и файлы выбранные ранее
        */

        // присвоение только что выбранных файлов
        otzivi_files = event.target.files;


        // обновление общего массива файлов
        $(otzivi_files).each(function(){
         otzivi_files_tmp = otzivi_files_tmp.concat(this);
        });

        // перерисовка списка после выбора дополнительных файлов
        $(function (){
            repaint_uplod_items();
        });

    }


    /*
        эта функция отслеживает изменение поля <input type="file">
        и добавляет в общий массив выбранные файлы посредством обратного вызова
    */
    $('input[type=file]').on('change', prepareUpload);

    function repaint_uplod_items()
    {
        /*
        этот код помещён в функцию
        так как:
        после удаления элемента, происходит изменение индексов в массиве otzivi_files_tmp
        у кнопки "удалить" остаются старые индексы
        в этом случае уже нельзя правильно удалить элементы кнопками
        из-за нарушения первоначальных индексов
        поэтому, после удаления элемента, следует перерисовать их список заново.
        */

        // выбираем контейнер для списка
        var fileList = $('#fileList');

        // очищаем от предыдущего кода
        $(fileList).html('');

        // формируем визуальную таблицу из массива файлов
        var table = '<table border = "0" cellspacing = "0" cellpadding = "0"><tr>';
        for (var i=0; i < otzivi_files_tmp.length; i++) {

            // устанавливаем ссылку на текущий объект
            var this_obj = otzivi_files_tmp[i];

            // получаем ссылку на картинку для использования в img src
            try{

                /*
                    из-за бага, в сафари этот метод не работает
                    поэтому в случае неудачи, нужно пропустить этот шаг
                  ссылка на баг https://bugs.webkit.org/show_bug.cgi?id=101671
                  пример, аналогичного скрипта,
                  который тоже не работает в сафари http://blueimp.github.io/jQuery-File-Upload/
                */

                img_src = window.URL.createObjectURL(this_obj);
            } catch(e) {}


            // формируем таблицу
            // js не поддерживает переносы строки, поэтому пришлось вот так её рисовать

            table += '<td>';
            table += '<div class="image_thummb">';
            if('undefined' != typeof img_src) table += '<a class="del_uplod_image" href="#'+i+'"><img class="del_im" src="css/x.png" /></a><img src="'+img_src+'" class="im" alt="" border="0" />';
            table += '</div>';
            table += '</td>';
            table += '';
            if('undefined' != typeof img_src) img_src.onload = function(){window.URL.revokeObjectURL(img_src);} // освобождаем память выделенную под картинку

        }
        table += '</tr></table>';
        $(fileList).html(table); // выгружаем в контейнер созданную визуальную таблицу
    }




    /*
        функция которая удаляет из массива элементы
        после этого наглядно показывает удаление элемента из списка fadeOut()
        и перерисовывает таблицу выбранных файлов
        использование $('body').on('click' ... обусловлено тем,
        что ссылки эти создаются динамически на странице, что делает невозможным использование обычного click()
    */
    $('body').on('click', 'a.del_uplod_image', function(){
        if(!confirm('удалить?'))return(false); // переспрашиваем, удалить ли файл из списка
        var to_del_id = $(this).attr('href').replace('#','') * 1; // получаем индекс удаляемого файла
        if('undefined' != typeof otzivi_files_tmp && otzivi_files_tmp.length)
        {
            // проверяем массив и элемент массива на существование
            if('undefined' != typeof otzivi_files_tmp[to_del_id] && otzivi_files_tmp[to_del_id])
            {
                otzivi_files_tmp.splice(to_del_id,1);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1268 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.