Php implementation of the file chunked upload for the angular directive ng-file-upload
Note: it could work for any html5 uploader with chunked upload if NgFileChunk
is constructed properly
Clone or download this repo, see the example
With Composer
$ composer require hgouveia/ng-upload-chunked
Check complete usage in the example folder
<?php
// In your POST handler
/*
$defaultConfig = [
"ext" => ".part",
"fileInputName" => "file",
"directoryPermission" => 0755,
"readChunkSize" => 1048576, // 1MB
"uploadDirectory" => "",
"tempDirectory" => "",
];
*/
$nguc = new \NGUC\NgUploadChunked(); //optional $config param
try {
// Contains the information of the current chunk
$chunk = new \NGUC\NgFileChunk(
$_POST['_uniqueId'],
$_FILES['file']['name'],
$_POST['_chunkSize'],
$_POST['_currentChunkSize'],
$_POST['_chunkNumber'],
$_POST['_totalSize'],
);
// this could be used instead, if ng-file-upload is beign used
//$chunk = new \NGUC\NgFileChunk();
//$chunk->populate($_POST['_uniqueId'], $_FILES['file']['name']);
$nguc->process($chunk);
// response the path when finished
if ($nguc->isFinished()) {
echo $nguc->getUploadPath();
}
} catch (\NGUC\NGUCException $e) {
echo "ERROR: " . $e->getCode() . " - " . $e->getMessage();
}
$ ./vendor/bin/peridot test
or if npm is available
$ npm test
Read License for more licensing information.
Read here for more information.