2012-09-26 14 views
5

Przeglądam niektóre "podobne" pytania, ale żaden z nich nie działa ani nie rozwiązuje konkretnego problemu, który mam.Plupload - funkcja po zakończeniu przesyłania?

Używam Plupload (http://www.plupload.com) do przesyłania zdjęć do Amazon S3. Działa to świetnie, jednak po zakończeniu przesyłania chcę zaktualizować inny element div na stronie, aby wyświetlić miniatury przesłanych plików. Moim zamiarem jest użycie jQuery.load, aby to zrobić (ponieważ będę musiał uruchomić zapytanie DB, zanim będę mógł je wyprowadzić). Jednak na razie próbuję uzyskać podstawową pracę i po prostu aktualizuję element div tekstem.

Mój aktualny kod (poniżej) nie zwraca żadnych błędów, ale nie aktualizuje elementu div po przesłaniu pliku (ów). Patrząc na różne odpowiedzi/sugestie, wydaje się, że istnieje wiele sposobów osiągnięcia tego, czego szukam - ale nie byłem w stanie uzyskać żadnej pracy.

Oto mój kod teraz ...

<script> 
$(document).ready(function(upload) { 
$("#uploader").pluploadQueue({ 
    runtimes : 'html5,html4', 
    url : '/gallery/upload.cfm', 
    max_file_size : '5000kb', 
    multiple_queues : true, 
    unique_names : true, 
    filters : [ 
     {title : "Image files", extensions : "jpg,gif,png,jpeg"} 
    ] 
}); 
$("#uploader").bind('FileUploaded', function() { 
$(".outputimages").html('The output goes here'); 
}); 
}); 
</script> 

<div id="uploader">You browser doesn't have HTML 4 support.</div> 

<div class="outputimages"></div> 
+0

Dzięki za odpowiedź. Nie potrzebuję dostępu do nazw plików, po prostu chcę wywołać inną funkcję po zakończeniu przesyłania (tj. Aktualizacji innego elementu div na stronie) - rzeczywiste pliki, które są przesyłane, są nieistotne. – Lee

+0

Po zakończeniu przesyłania zdjęć? – Cybrix

+0

Idealnie, tak - ale nie zaszkodzi mieć ogień po każdym z osobna. – Lee

Odpowiedz

8

To jest mój kod, który działa na mojej stronie:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script src="plupload/jquery.plupload.queue.js"></script> 
<script src="plupload/plupload.full.js"></script> 
<script> 
    $(function() { 
     $("#uploader").pluploadQueue({ 
      runtimes : 'html5,html4', 
      max_file_size : '10mb', 
      url : 'upload.php', 
      max_file_size : '5000kb', 
      multiple_queues : true, 
      unique_names : true, 
      filters : [ 
       {title : "Image files", extensions : "jpg,gif,png,jpeg"} 
      ] 
     }); 

     var uploader = $('#uploader').pluploadQueue(); 

     uploader.bind('FileUploaded', function() { 
      if (uploader.files.length == (uploader.total.uploaded + uploader.total.failed)) { 
       $(".outputimages").html('The output goes here'); 
      } 
     }); 
    }); 
</script> 

<div id="uploader">You browser doesn't have HTML 4 support.</div> 

<div class="outputimages"></div> 

tym przykładzie wywołać funkcję FileUploaded po każdych plików w kolejce zostały przesłane.

+0

To działa! Dziękuję! wklejony dokładnie w próbce, a następnie po prostu zmieniono ścieżkę wysyłania i działa idealnie.Nie całkiem jasne, gdzie się nie myliłem z tym – Lee

+0

Dobrze! Miłego dnia! – Cybrix

+0

Próbowałem użyć kodu a bove, ale dostaję błąd "pluploadQueue jest niezdefiniowany". Jakieś pomysły? – Andreas

6

Działa lepiej przy użyciu funkcji UploadComplete zamiast FileUploaded

+0

Wydajesz się rozumieć, jak działa ten system, czy mógłbyś rzucić na to okiem? http: // stackoverflow.com/questions/16555550/how-do-i-return-data-via-ajax-using-plupload-on-upload-complete, dziękuję! –

Powiązane problemy