
Przechodząc do meritum:
- korzystam z Uploadify (http://uploadify.com) 2.x
- dostosowuję multi-upload do nowej wersji (bo przykłady są dla 1.5), wszystko działa
- jednak po dopięciu do mojej mini-aplikacji coś jest nie tak
Jeśli zajawka jest ciekawa, więcej opisu:
mianowicie, w Uploadify, jest trochę dziwnych rzeczy, powiedziałbym że namieszane, ale szczegół, nie o tym temat.
Odpaliłem sobie na poligonie coś takiego:
$("#fileUpload2").uploadify({ 'uploader': 'js/uploadify.swf', 'script': 'upload.php', 'folder': 'files', 'multi': true, 'buttonText': 'Select Files', 'displayData': 'speed', 'simUploadLimit': 1, onSelect: function(event, ID, file){ var zuo = $('#zuo') .append('<li>'+file.size+' '+ID+'</li>') .find('li') .last() .data('size', file.size) .data('ID', ID) .append('<a href="">wyp</a>') .find('a') .last() .click(function(e){ e.preventDefault(); $('#fileUpload2').uploadifyCancel($(this).parent().data('ID')); $(this).parent().remove(); }); return false; }, onComplete: function(a,b,c,d){ alert('ZUOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!'); return false; } });
I ten kod działa bez problemów:
- własna obsługa kolejki śmiga
- wywalanie z niej obiektów również
- powiadomienie o uploadzie każdego z obiektów nie sprawia problemów - skrypt docelowy jest wywoływany i za każdym razem otrzymuję odpowiedniego alerta
Jednakże w kontekście mojej aplikacji dzieje się coś dziwnego: uploadowany jest tylko pierwszy plik z kolejki, zdarzenie onComplete nie jest wyzwalane, a podejrzenie zwracanego wyniku z onProgress pokazuje, że upload nastąpił w 100%.
Postanowiłem przekopać google, znalazłem jeden wątek na StackOverflow, ale niczego ciekawego się nie dowiedziałem.
Nie liczę, którą godzinę już nad tym siedzę, ale przyznam, że daje mi to trochę popalić.
Co jeszcze z przydatnych informacji - testowane pod najnowszym Fx-em i jednym z ostatnich buildów Chromium. W obu zachowuje się tak samo.
Na domiar złego, jeśli nie obsłużę w swojej aplikacji zdarzeń dla onComplete i onProgress, gdy polegam na standardowych funkcjach obsługi, sytuacja jest identyczna.
Początkowo myślałem, że jest to spowodowane tym, iż chowałem warstwę z uploaderem (display: none i Flash Player mrozi animację) - to też jednak sprawdziłem i pudło. Nadal jest to samo.
Aplikacja nie jest szczególnie skomplikowana - to coś w stylu kreatora i kolejki. Raczej niczego w środku szczególnego nie ma, co mogłoby coś takiego powodować; sprawdziłem już chyba wszystko.
Jakieś pomysły? scriptAccess chyba nie powinien mieć na to wpływu; żądania są w obrębie jednego hosta, zresztą - surowy przykład działa...