Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
94
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
1228
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
1029
0
Очень долго работает Update запрос Oracle
27th January, 09:58
969
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
959
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
995
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1782
0
период по дням
25th October, 10:44
4001
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3775
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4661
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4442
0
Помогите пожалуйста решить задачи
24th November, 23:53
6159
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4393
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4442
0
Метода Крамера С++
23rd October, 11:55
4356
0
помогите решить задачу на C++
22nd October, 17:31
4040
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4533
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2643
0
Проблемы с plupload?
Просмотров: 276
 
Ответов: 2
Пытаюсь сделать мультизагрузку файлов различных форматов для проекта, использую для этого плагин plupload. Проблема в том, что он у меня работает только с изображениями и только с обязательным изменением размера их.
Вот даже взял файлы из примера, который идёт вместе с архивом плагина.
Подключаем плагин и библиотеки:
...
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3");
</script>
<link rel="stylesheet" href="css/plupload.queue.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
<script type="text/javascript" src="../src/javascript/jquery.plupload.queue.js"></script>
...
Инициализируем плагин и задаём настройки:
$(function() {
var uploader = new plupload.Uploader({
runtimes : 'gears,browserplus,html5,html4',
browse_button : 'pickfiles',
max_file_size : '10mb',
url : 'upload.php',
resize : {width : 320, height : 240, quality : 90},
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
});
Создаём необходимые контейнеры:
<form id="submit-form" method="post" action="dump.php">
<h1>Custom example</h1>
<p>Shows you how to use the core plupload API.</p>
<div>
<div id="filelist">No runtime found.</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
<input type="submit" />
</form>
Файл upload.php остаётся один в один как идёт с архивом плагина, за исключением того, что изменён адрес папки, куда перемещать загружаемые файлы.
Что в итоге?
Изменение размера изображений мне совсем не нужно. Что мне действительно нужно — аяксовая мультизагрузка (и не только изображений, а большого перечня форматов файлов).
С приведённым кодом у меня нормально работает только загрузка изображений. Файлы любых других форматов на прогресс-баре показывает что загрузились полностью (100%), но в действительности никакого файла не появляется и «успешного ответа» от скрипта загрузки не приходит.
Firebug при этом показывает ошибку, но сам ответ — пустой.

Как это получается — сам не понимаю. Ведь все варианты upload.php заканчиваются хоть каким-нибудь ответом JSON, а чтобы ничего не пришло в ответ — получается должно истечь время выполнения скрипта, хотя процесс загрузки длится всего несколько секунд (max_execution_time точно в разы больше).
Манипуляции с опцией изменения размера изображения
Если из настроек убрать опцию:
...
resize : {width : 320, height : 240, quality : 90},
...
либо задать её значение = false, либо передать пустой объект {} — тогда перестаёт работать даже загрузка изображений, всё начинает происходить точно так же, как со всеми остальными типами файлов (описано выше).
Отладка способом plupload
Поскольку Firebug в моём случае ничего полезного не говорил, внедрил в Javascript отладку, пример которой приводят сами авторы plupload.
Вывод отладочной информации для успешной загрузки файла (возвращаем на место опцию resize, загружаем исключительно изображения) можно посмотреть тут.
Вывод отладочной информации для неудачной загрузки (прогресс-бар показал 100%, но файл не появился, в ответ ничего не пришло, опцию resize убрали) можно глянуть здесь.
Технические данные
Если это важно, тестирую на локальной Win-машине, сервер nginx-0.9.4 (без Apache), PHP 5.3.5 как CGI, браузеры Firefox 3.6.15 и Google Chrome 10.0.648.127 beta.
Архив со всеми файлами примера.
...
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3");
</script>
<link rel="stylesheet" href="css/plupload.queue.css" type="text/css" media="screen" />
<script type="text/javascript" src="../js/gears_init.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
<script type="text/javascript" src="../src/javascript/jquery.plupload.queue.js"></script>
...$(function() {
var uploader = new plupload.Uploader({
runtimes : 'gears,browserplus,html5,html4',
browse_button : 'pickfiles',
max_file_size : '10mb',
url : 'upload.php',
resize : {width : 320, height : 240, quality : 90},
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
});<form id="submit-form" method="post" action="dump.php">
<h1>Custom example</h1>
<p>Shows you how to use the core plupload API.</p>
<div>
<div id="filelist">No runtime found.</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
<input type="submit" />
</form>...
resize : {width : 320, height : 240, quality : 90},
...
думаю для автора темы уже не актуально, но если кто-то тоже столкнется с такой ошибкой, скажу: у меня в аналогичной ситуацию проблема решилась увеличением лимита на загрузку (на стороне сервера).
Т.е. все работало хорошо, пока грузились маленькие отресайзеные картиночки, но когда выключил эту опцию — действительно файлы перестали грузится.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться