javascript - plupload 通过上传 url 传递值

标签 javascript php html plupload

我使用 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/

最佳答案

我没有办法测试这个,但看起来你可以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;
});

关于javascript - plupload 通过上传 url 传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857312/

相关文章:

javascript - 将数字 id 从 html dropbox 传递给 JS 函数

javascript - 在项目列表上切换最喜欢的项目 - 如何由用户自动保存项目,而不使用提交 &lt;input&gt;

javascript - 如何修复 'import declarations may only be on top level` ECMAScript 导入错误

php - 在没有 httponly 标志的情况下创建的 Cookie XSRF-TOKEN - Laravel 5.8

php - SQL 查询将行值保存到 php 变量中

php - 如何在满足某些条件的 Where Clause 上获得结果?

javascript - 了解 Lodash - JavaScript 中的 findwhere 和复制运算符

html - 带有透明边框的响应式箭头进度条

javascript - JavaScript 中的简单 throttle

html - 表第二个 td 在第一个 td 下(图片)