[英]Blueimp multiple chunk upload with form data
我想分塊上傳帶有表單數據的多個文件。 將表單數據保存到數據庫,將圖像保存到perticualr文件夾。
我正在使用blueimp上傳, 這是我的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());
代碼是作為上載的塊數執行多次的,我希望在文件成功上載后執行一次。
還想命名上傳文件的文件,以將其保存到數據庫。
您需要首先上傳所有塊,最后一個塊執行您自己的邏輯。 因此,這是您可以執行的操作。
您應該首先從http標頭Content-Range
提取范圍信息。 您可以查看此答案以了解操作方法。 然后,您應該檢查這是否是最后一塊。
如果這是最后一個塊,那么您可以在那里簡單地執行業務邏輯。
即使答案太晚,它也可能對某人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.