Мультизагрузка на flash

SWFUpload это маленькая библиотека на /, которая позволяет загружать много файлов за раз и обладает поистине огромными возможностями.

Посмотреть в действии (демо)…

Возможности:

  • Загрузка сразу нескольких файлов при помощи 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.",
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>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>

<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 тут можно навернуть еще всякого, но это лишь пример.

если неохото копать ручками, то можно качать этот пример.

SWFupload

кстати в оригинальной версии есть примеры даже с ресайзом изображений и сессиями.

Похожие статьи:

  1. окошки с затемнением на jquery

10 комментариев »

Подписаться на комментарии по RSS. URI трекбека

  1. Здравствуйте, у вас получалось грузить файлы через этот аплоадер? Я как не пытаюсь, не получается привязать к демкам аплоад.пхп нормально. Простой пример индекса и аплоад.пхп у Вас нет?

    Коммент от Сергей — 29 июля 2009 #

  2. Есть, я обновил данный пост, теперь тут все имеется.

    Коммент от Eugene Che — 29 июля 2009 #

  3. Долго искал, как реализовать мультизагрузку. Всё работает, спасибо большое!

    Коммент от Александр — 4 февраля 2010 #

  4. не могли бы мне подсказать, как и где изменить адрес папки загрузки в сеттингах? (он у меня меняется динамически, поэтому хотелось бы его передавать с помощью js)

    Коммент от Alina — 10 февраля 2010 #

  5. Alina: в файле upload.php после 16 строки идут пути.
    Александр: рад что помог =)

    Коммент от Eugene Che — 15 февраля 2010 #

  6. » в файле upload.php после 16 строки идут пути.»

    Вот хотелось бы поподробнее, как из index.php передать динамически сформированный путь в upload.php?

    Коммент от Sergey — 3 апреля 2010 #

  7. и еще скрипт не любит пути такого типа ../upload

    попытка передавать параметры в строке post_params: {«gpath» : «», «PHPSESSID» : «»}, не увенчалась успехом.

    Коммент от Sergey — 4 апреля 2010 #

  8. Да действительно, есть некоторые проблемы с передачей параметров, я пока занят, как только спадет нагрузка, обещаю выложить мануал по нескольким загрузчикам, в т.ч. которыми пользуюсь сам.

    Коммент от Eugene Che — 4 апреля 2010 #

  9. у меня все время пишет ошибку ввода вывода (server (IO) error). ее код вроде 2038. погуглил, решения не нашел. помогите плиз. думал с правами связано на папку для загрузки, поставил ей 777, не помогло. пути все проверил, все ок. но стабильно выдает эту ошибку…

    Коммент от Марк — 25 ноября 2011 #

  10. Посмотрите error_log от php. Установите гугл хром и посмотрите что есть в консоле.

    Коммент от Eugene Che — 25 ноября 2011 #

Оставьте Ваш отзыв

*
To prove that you're not a bot, enter this code
Anti-Spam Image

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

ITeye.ru
Подпишись на RSS или читай комментарии.