Uploadifive动态发布输入变量

下面的问题是当启动函数时, MyInputVariable当然是空的。

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

必须有一种方法来启动onUploadonUploadCompleteonUploadFile或更新formData东西,但我不知道如何做到这一点。


请注意,这是uploadiFIVE,而不是uploadify。 function/方法差异很大,解决方案可能不适用于两者。

在uplodifive论坛上经过数小时的误导性解决方案实验后,这就是解决方案。

在您的HTML锚标记中:

  Upload Files 

将锚标记更改为:

 Upload Files 

从初始函数调用中完全消除formData设置,使其看起来像这样:

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

比添加这个function:

  function uploadFiles() { $('#file_upload').data('uploadifive').settings.formData = { 'timestamp' : '', 'token' : '', 'MyNumber' : $('#MyInputVariable').val() }, $('#file_upload').uploadifive('upload'); } 

无论你需要添加什么其他变量。 您的输入变量现在将在上传时发布。

我认为这是最好的回答

如何使用uploadifive提交动态变量

替换这个:

 'formData': { 'timestamp': '', 'token': '', 'MyNumber': $('#MyInputVariable').val(), }, 

这样:

 'onUpload' : function(){ $('#file_upload').data('uploadifive').settings.formData = { 'timestamp': '', 'token': '', 'MyNumber': $('#MyInputVariable').val(), }}, 

这是完整的代码:

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