2012-06-05 19 views
5

Al usar el cargador de archivos Valum Ajax, ¿cómo puedo activar la carga?¿Cómo puedo activar el archivo de carga con Valums Ajax File-Uploader?

El comportamiento predeterminado es que la carga comience inmediatamente después de que el usuario seleccione un archivo. Quiero evitar que esto suceda y, en su lugar, desencadenar la carga cuando el usuario hace clic en un botón "Subir" por separado después de haber seleccionado un archivo.

Miré a través del código y encontré que la carga comienza en el evento change adjunto a la entrada del archivo. Empecé añadiendo a return false; a la función onSubmit, y luego adjuntar un evento de clic de un botón que activa el evento de cambio:

$('#startUpload').on('click', function() { 
    // some conditionals 
    $('input[name="file"]').trigger('change'); 
}); 

que no funciona. Simplemente abre el menú de archivo nuevamente.

¿Cómo puedo evitar que la carga se produzca inmediatamente después de que el usuario selecciona el archivo y en su lugar desencadenarlo cuando el usuario hace clic en otro botón?

Respuesta

3

Deberá modificar el archivo file-uploader.js para esto. En la línea 309, modifique la función onChange para devolver falso. A continuación, agregue la siguiente función por encima de ella, por lo que el código se convierte en:

startUpload: function(){ 
    this._onInputChange(this._button.getInput()); 
}, 
_createUploadButton: function(element){ 
    var self = this; 

    return new qq.UploadButton({ 
     element: element, 
     multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(), 
     onChange: function(input){ 
      return false; 
     } 
    }); 
}, 

a continuación en el archivo HTML, dentro de su clic de botón o cualquier otro evento, llame

uploader.startUpload(); 

donde cargador es el nombre de su objeto qq.FileUploader().

Espero que ayude :)

+1

La versión actual de Fine Uploader admite cargas activadas manualmente a través de la API. Ya no es necesario modificar el código. –

2

Valums Ajax cargador de archivos ahora es compatible con esta función .. Puede cola de archivos y de disparo Subir en el botón Haga clic

var uploader2 = new qq.FileUploader({ 
    element: $('#manualUploadModeExample')[0], 
    action: "success.html", 
    autoUpload: false, 
    demoMode: true, 
    uploadButtonText: "Select Files" 
}); 

$('#triggerUpload').click(function() { 
    uploader2.uploadStoredFiles(); 
}); 

Para más información sobre esto, echa un vistazo a este enlace: valums file uploder

+0

Esta solución es para Valums fine uploader no Valumns File Uploader – Sanchitos

+1

@Sanchitos: No encuentro nada como Valums "fine" uploader .. Estoy seguro de que es Valums "file" uploader – casper123

+3

A partir de la versión 2 y superior, se llama Fine Uploader: http://fineuploader.com/, aunque el proyecto github todavía se llama "fileuploader". – mhu

Cuestiones relacionadas