2012-05-17 14 views
5

Próbuję ustawić flagę automatycznego ładowania do jQuery File Upload. więc staram edycji jquery.fileupload.js w ten sposób:Jak ustawić opcję automatycznego ładowania do przesyłania plików Jquery

(function (factory) { 
    'use strict'; 
    if (typeof define === 'function' && define.amd) { 
     // Register as an anonymous AMD module: 
     define([ 
      'jquery', 
      'jquery.ui.widget' 
     ], factory); 
    } else { 
     // Browser globals: 
     factory(window.jQuery); 
    } 
}(function ($) { 
    'use strict'; 

    // The FileReader API is not actually used, but works as feature detection, 
    // as e.g. Safari supports XHR file uploads via the FormData API, 
    // but not non-multipart XHR file uploads: 
    $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader); 
    $.support.xhrFormDataFileUpload = !!window.FormData; 

    // The fileupload widget listens for change events on file input fields defined 
    // via fileInput setting and paste or drop events of the given dropZone. 
    // In addition to the default jQuery Widget methods, the fileupload widget 
    // exposes the "add" and "send" methods, to add or directly send files using 
    // the fileupload API. 
    // By default, files added via file input selection, paste, drag & drop or 
    // "add" method are uploaded immediately, but it is possible to override 
    // the "add" callback option to queue file uploads. 
    $.widget('blueimp.fileupload', { 

     options: { 
      // The namespace used for event handler binding on the dropZone and 
      // fileInput collections.   
      // If not set, the name of the widget ("fileupload") is used. 
      namespace: undefined, 
      autoUpload:true, 
      . 
      . 
      . 

i main.js w ten sposób:

$(function() { 
    'use strict'; 

    // Initialize the jQuery File Upload widget: 
    $('#fileupload').fileupload(); 

    // Enable iframe cross-domain access via redirect option: 
    $('#fileupload').fileupload(
     'option', 
     'redirect', 
     window.location.href.replace(
      /\/[^\/]*$/, 
      '/cors/result.html?%s' 
     ) 
    ); 

    if (window.location.hostname === 'blueimp.github.com') { 
     // Demo settings: 
     $('#fileupload').fileupload('option', { 
      url: '//jquery-file-upload.appspot.com/', 
      maxFileSize: 5000000, 
      autoUpload:true, 
      . 
      . 
      . 

widzę przez ten

<td class="start">{% if (!o.options.autoUpload) { %} 
    <button class="btn btn-primary"> 
     <i class="icon-upload icon-white"></i> 
     <span>{%=locale.fileupload.start%}</span> 
    </button> 
{% } %}</td> 

które zaczynają pojawia się przycisk, więc o. options.autoUpload to false, ale ustawię go na true. Co mogę zrobić? w jaki sposób mogę ustawić automatyczne ładowanie, aby przesłać obraz bezpośrednio po wybraniu? dzięki!

Odpowiedz

13

Rozwiązałem biorąc oryginalny przykład pobrany ze strony wtyczki i zmienić flagę autoUpload:true i działa :)

+2

Thanks Jack. Twoja odpowiedź naprawdę mi pomogła. Po prostu dodałem $ ('# fileupload'). Fileupload ('option', {autoUpload: true \t}); do main.js i zadziałało. Uważaj, aby nie umieścić go w bloku if (window.location.hostname === 'blueimp.github.com'). – clone45

+0

To nie zadziała dla mnie. Opcja autoUpload pojawia się tylko w 'jquery.fileupload-ui.js', więc zmieniłem ją na' true' bez powodzenia. Próbowałem też metody clone45, która też nie działała. Jakieś pomysły? – vertigoelectric

+1

Znalazłem własne rozwiązanie. Na stronie, na której upuszczasz przesyłki, dodałem "setInterval", który sprawdza co pół sekundy, aby zobaczyć, czy przycisk "Start" istnieje i klika. Jak dotąd wydaje się, że działa świetnie. – vertigoelectric

Powiązane problemy