Мультизагрузка на flash
27/07/09 в 23:07 | просто прочесть =)SWFUpload это маленькая библиотека на JavaScript/Flash, которая позволяет загружать много файлов за раз и обладает поистине огромными возможностями.
Возможности:
- Загрузка сразу нескольких файлов при помощи ctrl/shift выбора в диалоге открытия
- Javascript callbacks на все действия
- Информация о файле до его загрузки
- Стилизация элементов на странице
- Вывод информации во время загрузки файлов
- Загрузка без рефреща страницы
- Работает везде где включен JavaScript и есть Flash
- Загрузка обычными средствами, если flash или javascript отключены
- Контроль размера файла до его загрузки
- Выбор в диалоге, только указанных типов файлов
- Возможность удаления после загрузки
На момент поста, последний релиз — SWFUpload v2.2.0
На своем примере опишу, как я загружаю файлы:
подключаю в основном файле в head
<script type="text/javascript">
var swfu;
window.onload = function() {
var settings = {
flash_url : "swfupload.swf",
upload_url: "upload.php",
post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},
file_size_limit : "100 MB",
file_types : "*.*",
file_types_description : "All Files",
file_upload_limit : 100,
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel"
},
debug: false,
// Button settings
button_image_url: "images/TestImageNoText_65x29.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont">Hello</span>',
button_text_style: ".theFont { font-size: 16; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler : queueComplete // Queue plugin event
};
swfu = new SWFUpload(settings);
};
</script>
а в body добавляем формочку в блоке
<div id="content">
<form id="form1" action="index.php" enctype="multipart/form-data" method="post">
<div id="fsUploadProgress" class="fieldset flash">
<span class="legend">Upload Queue</span>
</div>
<div id="divStatus">0 Files Uploaded</div>
<div>
<span id="spanButtonPlaceHolder"> </span>
<input id="btnCancel" style="margin-left: 2px; font-size: 8pt; height: 29px;" onclick="swfu.cancelQueue();" disabled="disabled" type="button" value="Cancel All Uploads" />
</div>
</form>
</div>
далее проверяем все ли файлы подключенные на своих местах:
images
- TestImageNoText_65x29.png
js
- fileprogress.js
- handlers.js
- swfupload.queue.js
upload
.
- default.css
- index.php
- swfupload.js
- swfupload.swf
- upload.php
вот код файла upload.php тут можно навернуть еще всякого, но это лишь пример.
если неохото копать ручками, то можно качать этот пример.
кстати в оригинальной версии есть примеры даже с ресайзом изображений и сессиями.
Похожие статьи:
10 комментариев »
Подписаться на комментарии по RSS. URI трекбека
Здравствуйте, у вас получалось грузить файлы через этот аплоадер? Я как не пытаюсь, не получается привязать к демкам аплоад.пхп нормально. Простой пример индекса и аплоад.пхп у Вас нет?
Коммент от Сергей — 29 июля 2009 #
Есть, я обновил данный пост, теперь тут все имеется.
Коммент от Eugene Che — 29 июля 2009 #
Долго искал, как реализовать мультизагрузку. Всё работает, спасибо большое!
Коммент от Александр — 4 февраля 2010 #
не могли бы мне подсказать, как и где изменить адрес папки загрузки в сеттингах? (он у меня меняется динамически, поэтому хотелось бы его передавать с помощью js)
Коммент от Alina — 10 февраля 2010 #
Alina: в файле upload.php после 16 строки идут пути.
Александр: рад что помог =)
Коммент от Eugene Che — 15 февраля 2010 #
» в файле upload.php после 16 строки идут пути.»
Вот хотелось бы поподробнее, как из index.php передать динамически сформированный путь в upload.php?
Коммент от Sergey — 3 апреля 2010 #
и еще скрипт не любит пути такого типа ../upload
попытка передавать параметры в строке post_params: {«gpath» : «», «PHPSESSID» : «»}, не увенчалась успехом.
Коммент от Sergey — 4 апреля 2010 #
Да действительно, есть некоторые проблемы с передачей параметров, я пока занят, как только спадет нагрузка, обещаю выложить мануал по нескольким загрузчикам, в т.ч. которыми пользуюсь сам.
Коммент от Eugene Che — 4 апреля 2010 #
у меня все время пишет ошибку ввода вывода (server (IO) error). ее код вроде 2038. погуглил, решения не нашел. помогите плиз. думал с правами связано на папку для загрузки, поставил ей 777, не помогло. пути все проверил, все ок. но стабильно выдает эту ошибку…
Коммент от Марк — 25 ноября 2011 #
Посмотрите error_log от php. Установите гугл хром и посмотрите что есть в консоле.
Коммент от Eugene Che — 25 ноября 2011 #