getCurrentChunkNumber() public method

Get current uploaded chunk number, starts with 1
public getCurrentChunkNumber ( ) : integer | null
return integer | null
Example #1
0
 /**
  * uploadFile
  *
  * @param  string $mediaDir
  * @param  Request $request
  * @throws HttpException
  *
  * @return string
  */
 public static function uploadFile($mediaDir, Request $request)
 {
     $uploadedFile = null;
     if ($request->files->get('file')) {
         /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $fileFromFileBag */
         $fileFromFileBag = $request->files->get('file');
         $uploadedFile = array('name' => $fileFromFileBag->getClientOriginalName(), 'type' => $fileFromFileBag->getMimeType(), 'tmp_name' => $fileFromFileBag->getPathname(), 'error' => $fileFromFileBag->getError(), 'size' => $fileFromFileBag->getSize());
     }
     $config = new FlowConfig();
     $config->setTempDir($mediaDir);
     $flowRequest = new FlowRequest($request->request->all(), $uploadedFile);
     $flowFile = new FlowFile($config, $flowRequest);
     if ($request->getMethod() === 'GET') {
         if ($flowFile->checkChunk()) {
             header("HTTP/1.1 200 Ok");
         } else {
             header("HTTP/1.1 204 No Content");
             return false;
         }
     } else {
         if ($flowFile->validateChunk()) {
             rename($uploadedFile['tmp_name'], $flowFile->getChunkPath($flowRequest->getCurrentChunkNumber()));
         } else {
             throw new HttpException(400);
         }
     }
     $filename = $mediaDir . '/' . $uploadedFile['name'];
     if ($flowFile->validateFile() && $flowFile->save($filename)) {
         return $filename;
     } else {
         // This is not a final chunk, continue to upload
     }
     return false;
 }
Example #2
0
 /**
  * @covers ::checkChunk
  */
 public function testFile_construct_checkChunk()
 {
     $request = new Request($this->requestArr);
     $file = new File($this->config, $request);
     $this->assertFalse($file->checkChunk());
     $chunkName = sha1($request->getIdentifier()) . '_' . $request->getCurrentChunkNumber();
     $firstChunk = vfsStream::newFile($chunkName);
     $this->vfs->addChild($firstChunk);
     $this->assertTrue($file->checkChunk());
 }
Example #3
0
 /**
  * @covers ::__construct
  * @covers ::getParam
  * @covers ::getFileName
  * @covers ::getTotalSize
  * @covers ::getIdentifier
  * @covers ::getRelativePath
  * @covers ::getTotalChunks
  * @covers ::getDefaultChunkSize
  * @covers ::getCurrentChunkNumber
  * @covers ::getCurrentChunkSize
  * @covers ::getFile
  * @covers ::isFustyFlowRequest
  */
 public function testRequest_construct_withCustomRequest()
 {
     $request = new Request($this->requestArr);
     $this->assertSame('prettify.js', $request->getFileName());
     $this->assertSame(100, $request->getTotalSize());
     $this->assertSame('13632-prettifyjs', $request->getIdentifier());
     $this->assertSame('home/prettify.js', $request->getRelativePath());
     $this->assertSame(42, $request->getTotalChunks());
     $this->assertSame(1048576, $request->getDefaultChunkSize());
     $this->assertSame(1, $request->getCurrentChunkNumber());
     $this->assertSame(10, $request->getCurrentChunkSize());
     $this->assertSame(null, $request->getFile());
     $this->assertFalse($request->isFustyFlowRequest());
 }