В этой статье описывается метод загрузки нескольких файлов и ограничения количества файлов в swfupload. Поделитесь этим для вашей ссылки, следующим образом:
SWFUpload - это компонент загрузки клиента на основе Flash и JavaScript.
Handlers.js Файл
Полная очередь файла (FileQueed) →
Заполните выбор файла (FileDialOgComplete) → Запуск загрузки (uploadStart) → Загрузка обработки (uploadProgress) → Загрузка успеха (uploadSuccess) → Завершение загрузки (uploadcomplete) →
Queuecoplete
Как показано выше, если вышеуказанные функции обратного вызова выполняются в последовательности с одним избирательными файлами, следует отметить, что выбрано несколько файлов. FileQueed и QueueCoplete будут выполнены только один раз, в то время как FileLogComplet ... → UploadComplete будет выполнен один раз на один файл.
После завершения основных функций со ссылкой на официальный пример имитация Ganji принимает метод iframe.
Чтобы достичь предела по количеству предварительного просмотра и количество удаленных и загруженных изображений
Отображать миниатюры, генерируйте кнопки для удаления миниатюр,
ThumbImages отображает Divs Thumbnails для страницы родителей
SRC_S - это сгенерированный адрес министерства
SRC_B - это исходный адрес изображения
ServerData - это данные, возвращаемые страницей обработки загрузки изображения. Он будет возвращен в формате успеха | Адрес мини -миниатю
function uploadsuccess (file, serverdata) {try {var result = serverdata.split ('|'); if (result [0]! = 'success') {var progress = new fileProgress (файл, this.customSettings.progressTarget); progress.seterror (); Progress.setStatus (ServerData); progress.togglecancel (false); } else {var progress = new fileProgress (файл, this.customSettings.progressTarget); progress.setComplete (); Progress.setStatus («загрузить заполнение»); progress.togglecancel (false); var img_url_s = result [1]; var img_url_b = результат [2]; AddImage (img_url_s, img_url_b); }} catch (ex) {this.debug (ex); }} функция AddImage (src_s, src_b) {var newdiv = parent.document.createElement ("div"); newdiv.style.margin = "5px"; newdiv.style.height = "60px"; newdiv.style.width = "80px"; newdiv.style.border = "1px solid #7f9db9"; newdiv.style.cssfloat = "Left"; newdiv.style.stylefloat = "Left"; newdiv.style.position = "относительный"; var newa = parent.document.createElement ("a"); newa.classname = "delete"; newa.title = "delete"; newa.href = "javascript ::"; newa.onclick = function () {deldiv (newdiv);}; var newinput_s = parent.document.createElement ("input"); newInput_s.type = "hidden"; newInput_s.value = src_s; newInput_s.name = "image_s []"; newa.appendchild (newinput_s); var newinput_b = parent.document.createElement ("input"); newInput_b.type = "hidden"; newInput_b.value = src_b; newInput_b.name = "Image_b []"; newa.appendchild (newinput_b); var newimgdiv = parent.document.createElement ("div"); var newImg = parent.document.createElement ("img"); newimg.style.height = "60px"; newimg.style.width = "80px"; newimgdiv.appendchild (newimg); newdiv.appendchild (newimgdiv); newdiv.appendchild (Newa); parent.document.getElementById ("Thumbimages"). AppendChild (NewDiv); if (newimg.filters) {try {newimg.filters.item ("dximageTransform.microsoft.alpha"). opacity = 0; } catch (e) {// Если он не установлен изначально, браузер бросит ошибку. Это установит его, если он еще не будет установлен. newimg.style.filter = 'progid: dximagetransform.microsoft.alpha (opacity =' + 0 + ')'; }} else {newimg.style.opacity = 0; } newimg.onload = function () {fadein (newimg, 0); }; newImg.src = src_s;} функция fadein (элемент, непрозрачность) {var createopacity = 5; var QUARE = 30; // 15 кадров в секунду if (непрозрачность <100) {opacity += creampacity; if (непрозрачность> 100) {непрозрачность = 100; } if (element.filters) {try {element.filters.item ("dximageTransform.microsoft.alpha"). opacity = opacity; } catch (e) {// Если он не установлен изначально, браузер бросит ошибку. Это установит его, если он еще не будет установлен. element.style.filter = 'progid: dximagetransform.microsoft.alpha (opacity =' + opacity + ')'; }} else {element.style.opacity = opacity / 100; }} if (непрозрачность <100) {setTimeout (function () {fadein (element, opacity);}, rack); }}Относительно обработки оставшегося количества загруженных файлов
функция queueCoplete (numfilesUploaded) {this.setButtOndisabled (false); var stats = this.getStats (); var status = document.getElementbyId ("divstatus"); status.innerhtml = "uploaded" + stats.successful_uploads + "файлы, вы также можете загрузить" + parseint (this.settings ['file_upload_limit']-stats.successful_uploads) + "file";} функция deldiv (mydiv) {mydiv.parrentnode.rom. // SWFU См. SWFU на странице IFRAME SWFU = New SWFUPLOAD (Настройки); var stats = swfu.getstats (); stats.successul_uploads--; SWFU.SetStats (STATS); var status = document.getElementbyId ("divstatus"); status.innerhtml = "загружено" + stats.successful_uploads + "файл, также может быть загружен" + parseint (swfu.settings ['file_upload_limit']-stats.successul_uploads) + "файлы";}Это может быть связано с использованием iframe
SWFU в Deldiv Function не может быть заменен этим
Общий эффект, как показано на рисунке:
После загрузки изображения и снова изменить информацию, вам нужно получить, сколько картинок было загружено, и объединить их в swfupload
Получите загруженный путь изображения с фона через PHP и дайте его массиву JS через Smarty
var img_arr = new array (); {if isset ($ img_arr)} {section name = 'img_arr' loop = $ img_arr} img_arr [{$ smarty.section.img_arr.index}] = new Array ('{$ img_arr [img_arr] .images_s}', '{$ img_arr [img_arr] .images_b}'); {/section} {/if}Запросить документ SWFUPLOAD, чтобы получить следующую информацию
FlashReady ()
Эта функция события является внутренним событием и не может быть переписана. Это событие запускается при создании SWFUPLOAD, а загруженная вспышка завершает все операции инициализации.
Напоминание: swfupload_loaded_handler в соответствующих настройках
Так что установите swfupload_loaded_handler в настройках swfupload
swfupload_loaded_handler: загружен,
Затем определите загруженную функцию в Handlers.js
function загружен () {if (img_arr.length! = 0) {for (val in img_arr) {addimagefromdb (img_arr [val] [0], img_arr [val] [1], this); }}}Вызовите функцию AddImageFromDB, чтобы изменить количество загруженных изображений и генерировать миниатюры загруженных изображений
// Инициализировать загруженную функцию изображения AddImageFromDB (src_s, src_b, swfu) {var stats = swfu.getstats (); stats.successuful_uploads ++; SWFU.SetStats (STATS); var status = document.getElementbyId ("divstatus"); status.innerhtml = "uploaded <font color = 'green'>" + stats.successful_uploads + "</font> zhang, вы также можете загрузить <font color = 'red'>" + parseint (swfu.settings ['file_upload_limit']-stats.successful_uploads) + "/Zang-font> Zang-font>" '/Zang-font> "'/Zang-font>" '/Zang-font> "'/Zang-ghang-font. AddImage (src_s, src_b);}For more information about JavaScript related content, please check out the topics of this site: "Summary of JavaScript switching effects and techniques", "Summary of JavaScript search algorithm skills", "Summary of JavaScript animation effects and techniques", "Summary of JavaScript errors and debugging techniques", "Summary of JavaScript data structures and algorithm skills", "Summary of Алгоритмы и методы обхода JavaScript »и« Сводка использования математических операций JavaScript ».
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.