我想要使用表单数据上传多个文件。将表单数据保存到数据库并将图像保存到perticualr文件夹。
我正在使用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 class 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());
代码执行多次,因为上传的数据块数量,我希望它在成功上传文件时执行一次。
还要命名上传文件的文件以将其保存到数据库。
答案 0 :(得分:3)
您需要先上传所有块,然后在最后一个块上执行您自己的逻辑。所以这就是你如何做到这一点。
您应首先从http标头Content-Range
中提取范围信息。您可以查看this answer了解具体方法。然后你应该检查那是否是最后一块。
如果它是最后一个块,那么你就可以在那里执行你的业务逻辑。
即使这是一个迟到的答案,也可能对某人有帮助。