Only the first chance in a chucked upload gets uploaded. Here is my code:
$extension = pathinfo($_FILES['video']['name'], PATHINFO_EXTENSION);
// Simple validation (max file size 2MB and only two allowed mime types)
$validator = new FileUpload\Validator\Simple('200M', [
'video/x-flv', // .flv
'video/mp4', // .mp4
'application/x-mpegURL', // iphone .mp4, .mpu
'video/MP2T', // iphone .ts
'video/3gpp', // .3gp videos
'video/3gpp2', // .3gp, .3gp2, .3gpp videos
'video/quicktime', // .mov
'video/x-msvideo', // .avi
'video/webm', // .webm
'video/webm', // .webm
'video/ogg', // .ogg
'video/x-matroska', // .mkv
'video/x-ms-wmv' // .wmv
]);
// Simple path resolver, where uploads will be put
$pathresolver = new FileUpload\PathResolver\Simple('../../contents/videos/');
// The machine's filesystem
$filesystem = new FileUpload\FileSystem\Simple();
// FileUploader itself
$fileupload = new FileUpload\FileUpload($_FILES['video'], $_SERVER);
$filename = time() . preg_replace('/[^a-zA-Z0-9_]+/', '_', preg_replace('/[.]' .$extension. '$/', '', trim($_FILES['video']['name'])));
$filenamegenerator = new FileUpload\FileNameGenerator\Custom($filename . '.mp4');
// Adding it all together. Note that you can use multiple validators or none at all
$fileupload->setPathResolver($pathresolver);
$fileupload->setFileSystem($filesystem);
$fileupload->addValidator($validator);
$fileupload->setFileNameGenerator($filenamegenerator);
/*// Doing the deed
list($files, $headers) = $fileupload->processAll();
// Outputting it, for example like this
foreach($headers as $header => $value) {
header($header . ': ' . $value);
}*/
//echo json_encode(['files' => $files]);
$fileupload->addCallback('completed', function(FileUpload\File $file) {
echo $file->getRealPath();
});
Getting Internerla Server error issue when the file size is higher than my maxChunckSize.
$('#fileupload').fileupload({
maxChunkSize: 10000000, // 10 MB
add: function (e, data) {
var that = this;
$.getJSON('server/php/', {file: data.files[0].name}, function (result) {
var file = result.file;
data.uploadedBytes = file && file.size;
$.blueimp.fileupload.prototype
.options.add.call(that, e, data);
});
}
});