javascript - drop - Plupload inicia automáticamente la carga cuando se agregan archivos
upload image js (5)
"Asegúrese de enlazarlo después del inicio, ya que enlaza los manejadores predeterminados".
Así que tu código:
uploader.bind(''FilesAdded'', function(up, files) {...});
despues de ti
uploader.init();
Cuando se agregan archivos, quiero iniciar el proceso de carga automáticamente. Llamé a la función de inicio al final de FilesAdded pero no inicia la carga.
uploader.bind(''FilesAdded'', function(up, files) {
var str = "";
for (var i in files) {
str += ''<div id="'' + files[i].id + ''">'' + files[i].name + '' ('' + plupload.formatSize(files[i].size) + '') <b></b></div>'';
}
$(''#filelist'').html(str);
up.refresh();
up.start();
});
Aquí está mi código de creación
var uploader = new plupload.Uploader({
runtimes: ''html5,flash,silverlight'',
autostart : true,
url: ''<%= images_path %>'',
max_file_size: ''10mb'',
multipart: true,
browse_button: "pickfiles",
container: "the-uploader",
drop_element : "drop-area",
multipart_params: {
''_http_accept'': ''application/javascript'',
''<%=request_forgery_protection_token%>'': ''<%=form_authenticity_token%>'',
''<%=request.session_options[:key]%>'': ''<%=request.session_options[:id]%>''
},
filters: [
{title: "Images", extensions: "avi,jpg,jpeg,png,zip"}
],
});
La adición de up.start()
en su enlace de FilesAdded debe iniciar la carga cuando se agrega un archivo. He seguido el camino de llamar a mi cargador así (tuve problemas para hacerlo de la forma en que intentas llamarlo):
$(function() {
// Setup html5 version
$("#html5_uploader").pluploadQueue({
// General settings
runtimes : ''html5'',
url : ''upload.php'',
max_file_size : ''10mb'',
chunk_size : ''1mb'',
unique_names : true,
dragdrop : true,
multiple_queues : false,
multi_selection : false,
max_file_count : 1,
// Specify what files to browse for
filters : [
{title : "Text files", extensions : "txt"}
],
init : {
FilesAdded: function(up, files) {
up.start();
},
UploadComplete: function(up, files) {
$.each(files, function(i, file) {
// Do stuff with the file. There will only be one file as it uploaded straight after adding!
});
}
}
});
});
Para mi no funcionó tu versión pero sí funcionó:
FilesAdded: function(up, files) {
setTimeout(function () { up.start(); }, 100);
},
Así que configura un temporizador después de 100 ms para ejecutar el inicio. Estoy usando la versión de jquery ui durante la prueba y obtuve este error:
g("#" + l.id).position() is null
/js/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js
Simplemente active el botón Iniciar carga de esta manera
FilesAdded: function(up, files) {
$(''#fileupload_start'').click();
},
Esto cargará el archivo sin esperar 100 ms.
También estaba deseando lo mismo para mí y encontré la forma de hacerlo más abajo.
Una nueva forma de iniciar automáticamente la carga de archivos después de agregar un archivo es simplemente establecer true en la propiedad de inicio autostart
, como se muestra a continuación
$("#uploader").plupload({
.....
autostart: true,
.....
});