2014-02-24 5 views
2

양식 데이터가있는 여러 파일을 청크로 복사하려고합니다. 데이터베이스에 양식 데이터 저장 및 perticualr 폴더에 이미지 저장.양식 데이터가있는 Blueimp 다중 청크 업로드

저는 블루imp 업로드 here is my Fiddle을 사용하고 있습니다.

내가

$(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(); 
    }); 
}); 

덩어리 업로드를 사용하고 자바 스크립트 codde는 잘 작동하지만 데이터베이스에 데이터를 저장하면 여러 항목이 생성됩니다. 데이터베이스에 생성 된 항목 수는 청크 업로드 한 번호와 같습니다. 내가

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()); 코드 (blueimp PHP 클래스 https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php의 도움을 복용)되어 사용하고

enter image description here

PHP 코드 업로드 덩어리의 숫자로 여러 번 실행입니다 여기서 파일을 성공적으로 업로드 할 때 한 번 실행되도록합니다.

데이터베이스에 저장하기 위해 업로드 된 파일의 이름을 지정하려고합니다.

답변

3

먼저 모든 청크를 업로드하고 마지막 청크에서 자신의 논리를 실행해야합니다. 그래서 여기 당신이 이것을 할 수 있습니다.

먼저 http 헤더 Content-Range에서 범위 정보를 추출해야합니다. 방법은 this answer에서 확인할 수 있습니다. 그런 다음 마지막 덩어리인지 확인해야합니다.

그리고 마지막 청크 인 경우 거기에서 비즈니스 로직을 간단히 실행합니다.

늦은 대답 인 경우에도 도움이 될 수 있습니다.