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);}
});
});