【问题标题】:plupload pass values by upload urlplupload 通过上传 url 传递值
【发布时间】:2014-05-26 00:56:37
【问题描述】:

我使用 plupload 作为图片上传脚本。我希望能够将图像保存在一个或另一个文件夹中,具体取决于 .类似...

<select id="dir">
    <option value="dir1">Option1</option>
    <option value="dir2">Option2</option>
</select>

初始化pluploader的代码包含上传脚本的url:

url : "upload.php",

我希望能够将选项值传递给upload.php,这样我就可以使用$_GET 来处理它们,例如:

url : "upload.php?d=" + dir,

我尝试过使用:

var element = document.getElementById("dir").selectedIndex;
var dir = document.getElementsByTagName("option")[element].value;

javascript代码:

<script type="text/javascript" language="javascript">
// Initialize the widget when the DOM is ready
$(function() {

    // Setup html5 version
    $("#uploader").pluploadQueue({
        // General settings
        runtimes : 'html5,flash,silverlight,html4',
        url : "../upload.php",

        chunk_size : '1mb',
        rename : true,
        dragdrop: true,

        filters : {
            // Maximum file size
            max_file_size : '10mb',
            // Specify what files to browse for
            mime_types: [
                {title : "Image files", extensions : "jpg,jpeg,gif,png"}
            ]
        },

        // Resize images on clientside if we can
        resize: {
            width : 800,
            height : 800,
            quality : 90,
            crop: false // crop to exact dimensions
        },


        // Flash settings
        flash_swf_url : '../js/Moxie.swf',

        // Silverlight settings
        silverlight_xap_url : '../js/Moxie.xap'
    });
});
</script>

但它总是获得第一个选项值,因为它在 DOM 就绪时被初始化...

我该怎么做?


已解决:

1) 添加:

$(function() {
    $("#uploader").pluploadQueue({ //...
        multipart: true,
        multipart_params: { 'dir': '' }, //...

2) 添加:

var uploader = $('#uploader').pluploadQueue();
    uploader.bind('FilesAdded', function(up, files) {

    var element = document.getElementById("dir").selectedIndex;
    var dir = document.getElementsByTagName("option")[element].value;

    uploader.settings.multipart_params.dir = dir;       
});

来源:http://williamjxj.wordpress.com/2011/03/25/jquery-plugin-plupload-for-multi-files-upload/

【问题讨论】:

  • 您应该显示发出请求的 Javascript。
  • @BuckDoyle 添加了代码!谢谢

标签: javascript php html plupload


【解决方案1】:

我没有办法对此进行测试,但看起来你可以catch a BeforeUpload event 并在那里进行更改:

var uploader = $("#uploader").pluploadQueue({
  // ...
});

uploader.bind("BeforeUpload", function() {
  var element = document.getElementById("dir").selectedIndex;
  var dir = document.getElementsByTagName("option")[element].value;
  uploader.settings.url = "upload.php?d=" + dir;
});

【讨论】:

  • 谢谢,我试过了,但不能让它像这样工作...我得到 Notice: Undefined index: dir in /upload.php on第 3 行
  • 我没有包括你自己写的dir的计算。但我现在更新了答案以包含该计算。
  • 是的,我对您的评论的回答就是包含了这个,呵呵。对不起,我没有说清楚!
  • 那我不明白这个错误。您是否尝试打印出 elementdir 变量以确保它们正确?
  • 我用答案更新了我的问题。我可以按照您的指导以类似的方式修复它!所以谢谢!
猜你喜欢
  • 2021-02-12
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多