php - 创建新用户后使用 Dropzone.js 上传,发送标题

标签 php jquery ajax dropzone.js

我正在使用一个很棒的插件 - dropzone.js (dropzonejs.com) 让我的网站在注册新用户时更漂亮一些。

基本上,用户填写一个表单,将几张图片放入“放置区”,然后单击“提交”,这会触发一个将表单发布到 php 脚本的 ajax 调用。

我将 dropzone 参数设置为 enqueForUpload:false,这样可以防止文件自动上传,因为我需要在创建新用户 ID 后将它们上传到 uploads/$userid。我可以给 dropzone header 参数,我假设将其发布到 url,类似于 ajax 调用,而不是数据:{'userid': userid},dropzone 使用 header :{'userid': userid} ... 但是,dropzone 在 document.ready 上初始化,并且由于尚未声明 userid 变量,dropzone 无法初始化。

我猜我需要用 document.ready 初始化 dropzone,但现在还没有给它 header 。然后在 ajax 表单处理成功并返回 userid 后,调用 dropzone 上传并在此时为其提供标题。问题是,我不知道需要调用什么代码才能实现。

准备就绪时初始化 Dropzone:

$(document).ready(function(){
  $('#dropzone').dropzone({
    url: 'dropzoneprocess.php',
    maxFilesize: 1,
    paramName: 'photos',
    addRemoveLinks: true,
    enqueueForUpload: false,
  });
});

然后...

$('#submit').on('click', function(){
    validation crap here
    $.ajax({
        type: 'post',
        url: 'postform.php',
        data: {'various': form, 'values': here}
        datatype: 'json',
        success: function(data){
           var userid = data.userid;

    /* (and this is what I can't figure out:)
    tell dropzone to upload, and make it 
    post userid to 'dropzone.php' */

     });
});

最佳答案

如果您使用最新的 Dropzone 版本,参数 enqueueForUpload 已被移除,取而代之的是 autoProcessQueue,这使得整个排队更容易。

因此,一旦您希望上传所有文件,只需调用 myDropzone.processQueue()

要向 XHR 添加额外的参数,您可以简单地注册到 sending 事件,该事件将 xhr 对象作为第二个和 formData 作为第三个参数,自己添加数据。像这样:

myDropzone.on("sending", function(file, xhr, formData) {
  // add headers with xhr.setRequestHeader() or
  // form data with formData.append(name, value);
});

关于php - 创建新用户后使用 Dropzone.js 上传,发送标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378500/

相关文章:

jquery - 如何使用 jQuery "onClick"钩子(Hook)和 event.preventDefault();

mysql - CodeIgniter 数据表日期搜索范围

php - 服务器进程采用PHP+MySQL

PHP Insert INTO 不插入数据

php - HTML 未加载到 PHP 文档中

javascript - 如何在附带日期选择器的文本框中设置默认日期(格式为 "dd/mm/yy")?

javascript - $ ('html, body' ).animate 和 $ ('body' ).animate 之间的区别?

php - Laravel 5/Apache 2.4.9 配置问题

javascript - 错误 405 : Method not allowed

jquery - 显示/隐藏加载 GIF 无法使其工作