1

我一直在寻找如何添加输入字段并将额外变量传递给uploadifive.php 文件的答案。但是,我无法让任何已发布的解决方案发挥作用,而且大多数情况下,我确实找到的那些解决方案从未被列为有效或已解决。

有人可以告诉我如何将输入字段的内容传递给 uploadifive.php 文件吗?

这是我的 HTML

<input type="text" name="student" id="student" placeholder="Your Student ID" value="" />
<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>

这是javascript

<?php $timestamp = time();?>
    $(function() {
        $('#file_upload').uploadifive({
            'auto'     : false,
            'method'   : 'post',
            'formData' : {
                'timestamp' : '<?php echo $timestamp;?>',
                'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
                'student'   : $('#student').val()
                      },
                'queueID'          : 'queue',
                'uploadScript'     : 'uploadifive.php',
                'onUploadComplete' : function(file, data) { console.log(data); }
            });
        });

这是我尝试在 php 文件中使用它的方式,但没有传递值

$_POST['student']

如果有人能告诉我我做错了什么,我们如何让它发挥作用,我将非常感激。

谢谢,加里

4

5 回答 5

2

我们需要读取的输入仍然存在

<input type="text" name="student" id="student" placeholder="Your Student ID" value="" />

使用这个 js 作为指南(我只包括了对示例很重要的选项):

$('#my_file').uploadifive ({
    'formData': {
        //Some data we already know
        'timestamp' : "1400137111",
        'token'     : "a9b7ba70783b617e9998dc4dd82eb3c5"
     },

     //This will be executed before the upload process starts, so here's where
     //you will get the values in your form and will add them to formData.
     'onUpload': function(filesToUpload) {
         //Most of jQuery plugins, and luckily this one, uses the function jQuery.data
         //to save the settings we use on plugin's initialization.
         //In this case we can find those settings like this:
         var settings = $(this).data('uploadifive').settings;

         //Now we need to edit formData and add our input's value
         settings.formData.student = $('#student').val();

         //formData has the value readed from the input, so we store 
         //it again using jQuery.data
         $(this).data('uploadifive').settings = settings;

         //After this the plugin will perform the upload, reading the settings with
         //jQuery.data and our input's value will be present
     },

});
于 2014-05-15T06:59:47.800 回答
1

您的代码无法正常工作,因为在页面加载时将#student输入字段的值传递给 uploadify formData 。在那一刻,该字段的值为空,因此您在 PHP 脚本中得到空值。

您需要做的是在上传开始时准确读取该字段的值。为此,您必须实现uploadify 对象的onUploadStart方法。

检查文档以获取详细信息。您还将在那里找到动态设置 formData 的示例。

于 2013-09-27T08:13:33.160 回答
0
$('#file_upload') is undefined at the moment when you call the function 

您应该考虑使用document.ready以便加载所有 dom 元素并可以使用 jquery 引用

javascript:$('#file_upload').uploadifive('upload') of code is also unnecessary 

请阅读文档并在他们的 [demo][1] 中查看演示,他们已经定义了 uploadifive

[1]: http://www.uploadify.com/demos/最后是 dom 这就是为什么他们没有使用document.ready

于 2013-09-27T08:07:46.967 回答
0

忘记尝试在初始化中添加任何内容,例如 onUpload。不工作。如果你去 Uploadifive 论坛,你会发现作者的几个不一致的答案似乎包含语法错误并且也不起作用。

从初始化中完全删除 formData 并将其移至使用上传链接调用的单独函数。你会在这篇文章中找到详细的解释

于 2014-03-17T15:38:36.987 回答
0
    <?php $timestamp = time();?>
    function uploadFiles() {
        $('#file_upload').data('uploadifive').settings.formData = { 
            'title'     : $('#student').val(),
            'timestamp' : '<?php echo $timestamp;?>',
            'token'     : '<?php echo md5('unique_salt' . $timestamp);?>'
        };
        $('#file_upload').uploadifive('upload');
    }   
于 2014-01-02T21:18:33.727 回答