Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] Uploadify - Zwracanie bledow
Forum PHP.pl > Forum > XML, AJAX
chiken
Witam,

staram sie podpiac dodawanie plikow przez uploadify, mam problem odnosnie zwracania bledow,



Jak ustawie w js rozmiar pliku jaki moze byc, to ladnie pokazuje blad, ale chce zrobic sprawdzanie dodatkowych bledow przez php, i je zwracac, w pliku upload_ext.php, w onComplete zwraca alerta jesli jest jakis blad ale chcialbym zrobic aby blad wygladal tak samo jak np. informacja ze plik za duzy.

  1.  
  2. $(document).ready(function() {
  3. $("#fileUpload2").fileUpload({
  4. 'uploader': 'uploadify/uploader.swf',
  5. 'cancelImg': 'uploadify/cancel.png',
  6. 'script': 'uploadify/upload_ext.php',
  7. 'folder': 'files',
  8. 'multi': true,
  9. 'auto': true,
  10. 'buttonText': 'Wybierz pliki',
  11. 'displayData': 'speed',
  12. 'simUploadLimit': 2,
  13. 'sizeLimit': '2000000',
  14.  
  15.  
  16. onError: function (a, b, c, d) {
  17. if (d.status == 404)
  18. alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>');
  19. else if (d.type === "HTTP")
  20. alert('error '+d.type+": "+d.status);
  21. else if (d.type ==="File Size")
  22. alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');
  23. else
  24. alert('error '+d.type+": "+d.text);
  25. },
  26. onComplete: function(a, b, c, d, e){
  27. if (d !== '1')
  28. alert(d);
  29. },
  30. 'fileDesc': 'Php file,JPG Image Files (*.jpg), GIF(*.gif)',
  31. 'fileExt': '*.php;*.jpg;*.gif;',
  32. });
  33.  
  34. });
  35.  


plik upload_ext.php zwraca :

  1. If ($msg)
  2. $stringData = "Error: ".$_FILES['Filedata']['error']." Error Info: ".$msg;
  3. else
  4. $stringData = "1"; // This is required for onComplete to fire on Mac OSX
  5.  
  6. echo $stringData;



$stringData - jest przekazywany do alerta w oncomplete

jak ktos moze pomoc chetnie poslucham , bo juz kilka godzin to mecze i nic mi nie wpada do glowy biggrin.gif
Fifi209
Podmieniaj tak samo jak w przypadku błędów, gdy plik zbyt duży? Gdzie problem?
chiken
chodzi o to, ze nie wiem jak zrobic aby przekazac te bledy ktore zwracam podczas uploadu, pokazywaly sie na czerwono jak na zrzucie w poscie wyzej. Moge alerta wypuscic, lub podpiac aby cos robilo, ale nie wiem jak to wlozyc do obslugi onerror, bo tam te moje bledy nie sa przekazywane smile.gif
Fifi209
A jak wpisujesz błędy poprzez javascript? snitch.gif

[JAVASCRIPT] pobierz, plaintext
  1. $("#id").html('blad');
[JAVASCRIPT] pobierz, plaintext

?
chiken
jeszcze nie wpisuje smile.gif

zatrzymalem sie na etapie:

onComplete: function(a, b, c, d, e){
if (d !== '1')
alert(d);

czyli jak jest blad to alert jest, nie bylo by problemu zrobic to aby w innym divie wpisac bledy, z mozliwoscia ich usuniecia, ale chcialbym aby wszystkie bledy wygladaly tak samo i byly w jednym kontenerze div

czyli jak tutaj:



a nie wiem jak pod to sie podpisac i nie moge nigdzie informacji o tym znalezc.
Fifi209
Ciągle wklejasz tego screena, ja pytam jak wygenerowałeś te błędy w javascript i jak podmieniłeś wartości divów...
chiken
te bledy wywala caly plugin, uploadify,

aby sprawdzalo wielkosc plikow ustawia sie:

'sizeLimit' : '2000000',

itp, a on bledy sam wyswietla , zanim wysle na serwer, jak taki sie znajduje, ale nie wyswietla bledow po wyslaniu i zwroceniu ich przezemnie.

wiec stworzone bledy sa jak by nie przezemnie wyswietlone a przez plugin.
zieliq
Trochę czasu minęło, ale napotkałem ten sam problem i doskonale rozumiem o co Ci chodzi.
Rozwiązałem to następująco:

  1. jQuery("#fileUpload2").fileUpload({
  2. [...]
  3. 'onComplete' : UploadifyOnComplete, // nie dodawaj przecinka na końcu jeśli to ostatni element tablicy bo wysypie się pod ie
  4. });


---

  1. function UploadifyOnComplete(event, queueID, fileObj, response, data) {
  2. if (response != '1') {
  3. jQuery('#Uploadify' + queueID).addClass('uploadifyError');
  4. jQuery('#Uploadify' + queueID + ' .percentage').append(' - ' + response);
  5. return false; // nie znikaj kontenera z informacją o pliku i błędzie
  6. }
  7. }


w tym rozwiązaniu nie ma alerta tylko opis błędu jest wstawiany w itema dotyczącego pliku, z którym wystąpił błąd.
Oczywiście można przedefiniować css, żeby ładnie wyglądało.
Jest jedno wyzwanie, z którym sobie jeszcze nie poradziłem - niestety po zwróceniu błędu przez php i wyświetleniu go w sposób pokazany powyżej przestała mi działać metoda jQuery('#fileUpload2').uploadifyClearQueue();
Po prostu nie czyści kolejki, elementy nie znikają.

--
pozdrawiam,
zieliq
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.