Помогите разобраться с jQuery-File-Upload

mstdmstd

Новичок
Всем привет,
Помогите пожалуйста разобраться с плагином для множественной загрузке файлов jQuery-File-Upload ( http://blueimp.github.io/jQuery-File-Upload/index.html )

Пытаюсь запустить его в проекте Codeigniter 2 как описано в доке( https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin ):
dearworld.com.au/dev/hostels/images_uploads_test

3 файла из примера jquery.ui.widget.js, jquery.iframe-transport.js, jquery.fileupload.js подключены и библиотека на сервере

Инициализация плагина :

PHP:
      jQuery(document).ready(function ($) {

        $('#fileupload').fileupload({ // https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin

          dataType: 'json',
          done: function (e, data) {
            alert( "done::"+var_dump(data) )
            $.each(data.result.files, function (index, file) {
              alert("document.body::" + document.body)
    //        $('<p/>').text(file.name).appendTo(document.body);
              $('div_upload_images_preview').text(file.name).appendTo(document.body);
            });
          },

          progressall: function (e, data) {
            alert( "progressall::"+var_dump(data) )
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css(
              'width',
              progress + '%'
            );
          }

        });
        alert("AFTER UPLOAD INIT")
      });

Финальный aлерт выскакивает и в консоле ошибок нет

Файлы выбираются но метод done не вызывается но вызывается метод progressall с такими данными :

PHP:
    progressall::obj.loaded = 175634
    obj.total = 175634
    obj.bitrate = 1711414.6341463416
также непонятен метод data-url в опеределнии инпута загрузке файлов
Видимо он для загрузке файлов на диск ? Я его определил как dearworld.com.au/dev/hostels/make_fileupload и он возвращает простой json

PHP:
    {"ErrorMessage":"","ErrorCode":0}

Я определил див div_upload_images_preview - так так понимаю он для отображения выбранных файлов перед их загрузкой на диск ?
 

mstdmstd

Новичок
Неужели с этим плагином никто не работал ?
Может есть что-либо более удобное для этого? Имею в виду загрузка файлов без перегрузки всей страницы совместимое с jquery?
 

A1x

Новичок
в data-url находится урл на сервере, куда происходит загрузка
done может не вызывается потому что от сервера не приходит ответ 200, надо смотреть напр. файрбагом

вообще плагин вполне рабочий
 

mstdmstd

Новичок
Похоже вы правы
После выбора файлов я вижу ошибки в firebug :

http://s44.radikal.ru/i104/1306/eb/af7674ae4ced.png


При этом пхп-метод имеет вид:
PHP:
	public function make_fileupload() {  // Он прописан в data-url
		AppUtils::DebToFile( 'make_fileupload  $_POST::'.print_r($_POST,true), false);
		AppUtils::DebToFile( 'make_fileupload  $_FILES::'.print_r($_FILES,true), false);
		AppUtils::DebToFile( 'make_fileupload  $_GET::'.print_r($_GET,true), false);

		$this->output->set_content_type('application/json')->set_output(json_encode(array('ErrorMessage' => '', 'ErrorCode' => 0 ) ) );

	}
AppUtils::DebToFile( вывод текстового файла на диск и в этом файле вижу:
PHP:
make_fileupload  $_POST::Array
(
)

make_fileupload  $_FILES::Array
(
)

make_fileupload  $_GET::Array
(
)
Видимо возврат make_fileupload( должен быть другой а не json как у меня ?
И непоятно почему в make_fileupload( $_FILES пустой ?
 

A1x

Новичок
сначала нужно разобраться почему там возникает 500 Internal Server Error
 

mstdmstd

Новичок
Да спасибо за подсказку Поскольку это CodeIgniter - я поменял data-url в ссылке на .php файл и загрузка во временный файл заработала
 

Gust

Новичок
Можно обратиться за помощью по этому плагину. Прикрутил его к APEX, файлы грузит все хорошо. Но нету имен файлов. Сам файл получаю через переменную привязки :body, а тип содержимого через :contentType. Имени файла нету, хотя он вроде должен передаваться. Кто-нибудь может чего посоветовать, не хотелось бы ковырять options.xhr аякса и туда хедер с именами кидать.
 

A1x

Новичок
ну имя файла передается multipart-form полюбому (если вы используете multipart-form) - это можно посмотреть элементарно файрбагом
 

Gust

Новичок
ну имя файла передается multipart-form полюбому (если вы используете multipart-form) - это можно посмотреть элементарно файрбагом
А в каком именно месте смотреть? Я нашел кусок, который данные передает. Это $.ajax(parameters), в него лесть будет сложно.
 

A1x

Новичок
в firebug можно посмотреть все параметры и данные которые передаются запросом, ни в какой код не надо лезть
знаете что такое firebug?
 

Gust

Новичок
в firebug можно посмотреть все параметры и данные которые передаются запросом, ни в какой код не надо лезть
знаете что такое firebug?
Да, стоит, смотрел в запросе, в хедерах ничего интересного, все стандартное, может где-то в другом месте смотреть?
 

A1x

Новичок
во вкладке Post должно быть сто-то типа такого:

-----------------------------95921218932387
Content-Disposition: form-data; name="files[]"; filename="Wildlife.mp4"
Content-Type: video/mp4

���ftypisom���isomiso2mp41���free#mdatÞ��libfaac 1.28��B@“ 2�G��¶`‘‚=·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·ñ¶ßÆÛmüm·

..............
 

Gust

Новичок
А как теперь к этому обратиться?
У меня в коде идет insert into images (content_type, image, fname) values :)contentType, :body, :ContentDisposition)
:contentType = Content-Type из фаербага (Почему-то без тире). А вот :filename, :file, :ContentDisposition ничего не дают.
 

Gust

Новичок
Файлик с application деплоится в глассише. И потом уже запрос обрабатывается в бд оракл.
 

A1x

Новичок
Gust ну если работаешь с этими технологиями разбирайся, читай доки, спрашивай на соответствующих форумах,
тут вообще то форум по пхп
 
Сверху