ejemplo jquery post file-upload input uploadifive

jquery - ejemplo - Uploadifive publicando dinĂ¡micamente las variables de entrada



uploadify documentation (2)

El problema a continuación es que cuando se inicia la función, por supuesto, MyInputVariable está vacío.

<?php $timestamp = time();?> $(function () { $(''#file_upload'').uploadifive({ ''auto'': false, ''dnd'': true, ''checkScript'': ''check-exists.php'', ''formData'': { ''timestamp'': ''<?php echo $timestamp;?>'', ''token'': ''<?php echo md5(''unique_salt'' . $timestamp);?>'', ''MyNumber'': $(''#MyInputVariable'').val(), }, ''queueID'': ''queue'', ''uploadScript'': ''upload.php'', ''onUploadComplete'': function(file, data) {console.log(data);} }); });

Debe haber una manera de instigar onUpload , onUploadComplete , onUploadFile o algo así para actualizar formData , pero no sé cómo hacerlo.

Tenga en cuenta que esto es uploadiFIVE, no uploadify. Las funciones / métodos difieren significativamente, y las soluciones probablemente no se apliquen a ambos.


Después de muchas horas de experimentación con soluciones engañosas en el foro uplodifive, esta es la solución.

En su etiqueta de ancla HTML:

<input id="file_upload" name="file_upload" type="file" multiple="true"> <a style="position: relative; top: 8px;" href="javascript:$(''#file_upload'').uploadifive(''upload'')">Upload Files</a>

Cambie la etiqueta de anclaje a:

<a style="position: relative; top: 8px;" href="javascript:uploadFiles();">Upload Files</a>

Elimine por completo la configuración formData de la llamada a la función inicial para que se vea así:

$(function() { $(''#file_upload'').uploadifive( { ''auto'' : false, ''dnd'' : true, ''checkScript'' : ''check-exists.php'', ''queueID'' : ''queue'', ''uploadScript'' : ''upload.php'', ''onUploadComplete'' : function(file, data) {console.log(data);} }); });

Luego agregue esta función:

function uploadFiles() { $(''#file_upload'').data(''uploadifive'').settings.formData = { ''timestamp'' : ''<?php echo $timestamp;?>'', ''token'' : ''<?php echo md5(''unique_salt'' . $timestamp);?>'', ''MyNumber'' : $(''#MyInputVariable'').val() }, $(''#file_upload'').uploadifive(''upload''); }

Y cualesquiera otras variables que necesite agregar. Sus variables de entrada ahora se publicarán en la carga.


Creo que esto es lo mejor

Cómo enviar variables dinámicas con uploadifive

reemplazar esto:

''formData'': { ''timestamp'': ''<?php echo $timestamp;?>'', ''token'': ''<?php echo md5(''unique_salt'' . $timestamp);?>'', ''MyNumber'': $(''#MyInputVariable'').val(), },

por esto:

''onUpload'' : function(){ $(''#file_upload'').data(''uploadifive'').settings.formData = { ''timestamp'': ''<?php echo $timestamp;?>'', ''token'': ''<?php echo md5(''unique_salt'' . $timestamp);?>'', ''MyNumber'': $(''#MyInputVariable'').val(), }},

y este es el código completo:

<?php $timestamp = time();?> $(function () { $(''#file_upload'').uploadifive({ ''auto'': false, ''dnd'': true, ''checkScript'': ''check-exists.php'', ''onUpload'' : function(){ $(''#file_upload'').data(''uploadifive'').settings.formData = { ''timestamp'': ''<?php echo $timestamp;?>'', ''token'': ''<?php echo md5(''unique_salt'' . $timestamp);?>'', ''MyNumber'': $(''#MyInputVariable'').val(), }}, ''queueID'': ''queue'', ''uploadScript'': ''upload.php'', ''onUploadComplete'': function(file, data) {console.log(data);} }); });