【问题标题】:Blueimp multiple chunk upload with form data带有表单数据的 Blueimp 多块上传
【发布时间】:2014-03-25 14:29:12
【问题描述】:

我想用表单数据分块上传多个文件。将表单数据保存到数据库,将图像保存到特定文件夹。

我正在使用 blueimp 上传 here is my Fiddle

我正在使用的 JavaScript 代码

$(function () {
    $('#fileupload').fileupload({
        maxChunkSize: 5000,
        previewMaxHeight: 210,
        previewMaxWidth: 210,
        url: '/echo/json'
    });
    $('#fileupload').bind('fileuploadsubmit', function (e, data) {
        var inputs = data.context.find(':input');
        if (inputs.filter('[required][value=""]').first().focus().length) {
            return false;
        }
        data.formData = inputs.serializeArray();
    });
});

块上传工作正常,但如果我将数据保存到数据库,则会创建多个条目。 数据库中创建的条目数等于上传的块数。

我正在使用的 PHP 代码是(借助 blueimp PHP 类 https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php

public function postUpload()
{
    $upload_handler = new UploadHandler(); // Blueimp class

    $this->file->create(Input::all()); // This code is executed multiple times

}

所以主要问题是$this->file->create(Input::all()); 代码执行多次作为上传的块数,而我希望它在文件上传成功时执行一次。

还想为上传的文件命名文件以保存到数据库。

【问题讨论】:

    标签: javascript php jquery file-upload blueimp


    【解决方案1】:

    您需要先上传所有块,然后在最后一个块上执行您自己的逻辑。因此,您可以这样做。

    您应该首先从 http 标头 Content-Range 中提取范围信息。您可以查看this answer 了解如何操作。然后你应该检查这是否是最后一个块。

    如果它是最后一个块,你只需在那里执行你的业务逻辑。

    即使是迟到的答案,也可能对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 2013-04-22
      相关资源
      最近更新 更多