Revert: Feature/chunked uploads (#322)

parent 12b65738
$( document ).ready(function() { $( document ).ready(function() {
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
/* Adaptation to resumable uploads
* src: https://github.com/enyo/dropzone/issues/339#issuecomment-138644461
*/
var originalDropzone = Dropzone.prototype.uploadFiles;
Dropzone.prototype.uploadFiles = function (files) {
var resumable = new Resumable ({
target: Asgard.dropzonePostUrl,
maxFiles: Dropzone.prototype.defaultOptions.maxFiles || 10,
simultaneousUploads: Dropzone.prototype.defaultOptions.parallelUploads,
headers: {
'Authorization': AuthorizationHeaderValue
},
testChunks: false
});
if (resumable.support) {
for (var j = 0; j < files.length; j++) {
var fileLocal = files[j];
resumable.addFile(fileLocal);
}
resumable.on('fileAdded', function (file) {
resumable.upload();
});
resumable.on('fileProgress', function (file) {
var progressValue = Math.floor(resumable.progress() * 100);
Dropzone.prototype.defaultOptions.uploadprogress(file.file, progressValue, null);
});
resumable.on('fileSuccess', (function(_this) {
return function (file) {
return _this._finished([file.file], "success", null);
}
})(this));
resumable.on('error', (function(_this) {
return function (message, file) {
return _this._errorProcessing([file.file], message, null);
}
})(this));
} else {
//Fallback to original implementation
return originalDropzone.apply(this, arguments);
}
};
var myDropzone = new Dropzone(".dropzone", { var myDropzone = new Dropzone(".dropzone", {
url: Asgard.dropzonePostUrl, url: Asgard.dropzonePostUrl,
autoProcessQueue: true, autoProcessQueue: true,
......
This diff is collapsed.
...@@ -15,10 +15,6 @@ use Modules\Media\Http\Requests\UploadMediaRequest; ...@@ -15,10 +15,6 @@ use Modules\Media\Http\Requests\UploadMediaRequest;
use Modules\Media\Image\Imagy; use Modules\Media\Image\Imagy;
use Modules\Media\Repositories\FileRepository; use Modules\Media\Repositories\FileRepository;
use Modules\Media\Services\FileService; use Modules\Media\Services\FileService;
use Pion\Laravel\ChunkUpload\Exceptions\UploadMissingFileException;
use Pion\Laravel\ChunkUpload\Handler\AbstractHandler;
use Pion\Laravel\ChunkUpload\Handler\ResumableJSUploadHandler;
use Pion\Laravel\ChunkUpload\Receiver\FileReceiver;
class MediaController extends Controller class MediaController extends Controller
{ {
...@@ -60,15 +56,9 @@ class MediaController extends Controller ...@@ -60,15 +56,9 @@ class MediaController extends Controller
* @param UploadMediaRequest $request * @param UploadMediaRequest $request
* @return Response * @return Response
*/ */
public function store(Request $request) public function store(UploadMediaRequest $request)
{ {
$receiver = new FileReceiver("file", $request, ResumableJSUploadHandler::class); $savedFile = $this->fileService->store($request->file('file'));
if ($receiver->isUploaded()) {
$save = $receiver->receive();
if ($save->isFinished()) {
$savedFile = $this->fileService->store($save->getFile());
if (is_string($savedFile)) { if (is_string($savedFile)) {
return Response::json([ return Response::json([
...@@ -80,18 +70,6 @@ class MediaController extends Controller ...@@ -80,18 +70,6 @@ class MediaController extends Controller
return Response::json($savedFile->toArray()); return Response::json($savedFile->toArray());
} }
else {
$handler = $save->handler();
return response()->json([
"done" => $handler->getPercentageDone()
]);
}
}
else {
throw new UploadMissingFileException();
}
}
/** /**
* Link the given entity with a media file * Link the given entity with a media file
......
...@@ -109,7 +109,6 @@ ...@@ -109,7 +109,6 @@
{!! Theme::script('vendor/bootstrap/dist/js/bootstrap.min.js') !!} {!! Theme::script('vendor/bootstrap/dist/js/bootstrap.min.js') !!}
{!! Theme::script('vendor/datatables.net/js/jquery.dataTables.min.js') !!} {!! Theme::script('vendor/datatables.net/js/jquery.dataTables.min.js') !!}
{!! Theme::script('vendor/datatables.net-bs/js/dataTables.bootstrap.min.js') !!} {!! Theme::script('vendor/datatables.net-bs/js/dataTables.bootstrap.min.js') !!}
<script src="{!! Module::asset('media:js/resumable.js') !!}"></script>
<script src="{!! Module::asset('media:js/dropzone.js') !!}"></script> <script src="{!! Module::asset('media:js/dropzone.js') !!}"></script>
<?php $config = config('asgard.media.config'); ?> <?php $config = config('asgard.media.config'); ?>
<script> <script>
......
...@@ -92,7 +92,6 @@ ...@@ -92,7 +92,6 @@
@stop @stop
@section('scripts') @section('scripts')
<script src="{!! Module::asset('media:js/resumable.js') !!}"></script>
<script src="{!! Module::asset('media:js/dropzone.js') !!}"></script> <script src="{!! Module::asset('media:js/dropzone.js') !!}"></script>
<?php $config = config('asgard.media.config'); ?> <?php $config = config('asgard.media.config'); ?>
<script> <script>
......
...@@ -188,8 +188,6 @@ return [ ...@@ -188,8 +188,6 @@ return [
Modules\Core\Providers\AsgardServiceProvider::class, Modules\Core\Providers\AsgardServiceProvider::class,
App\Providers\RouteServiceProvider::class, App\Providers\RouteServiceProvider::class,
Pion\Laravel\ChunkUpload\Providers\ChunkUploadServiceProvider::class
], ],
/* /*
......
<?php
return [
/**
* The storage config
*/
"storage" => [
/**
* Returns the folder name of the chunks. The location is in storage/app/{folder_name}
*/
"chunks" => "storage/app/chunks",
"disk" => "local"
],
"clear" => [
/**
* How old chunks we should delete
*/
"timestamp" => "-3 HOURS",
"schedule" => [
"enabled" => true,
"cron" => "0 */1 * * * *" // run every hour
]
],
"chunk" => [
// setup for the chunk naming setup to ensure same name upload at same time
"name" => [
"use" => [
"session" => false, // should the chunk name use the session id? The uploader must send cookie!,
"browser" => true // instead of session we can use the ip and browser?
]
]
]
];
\ No newline at end of file
$( document ).ready(function() { $( document ).ready(function() {
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
/* Adaptation to resumable uploads
* src: https://github.com/enyo/dropzone/issues/339#issuecomment-138644461
*/
var originalDropzone = Dropzone.prototype.uploadFiles;
Dropzone.prototype.uploadFiles = function (files) {
var resumable = new Resumable ({
target: Asgard.dropzonePostUrl,
maxFiles: Dropzone.prototype.defaultOptions.maxFiles || 10,
simultaneousUploads: Dropzone.prototype.defaultOptions.parallelUploads,
headers: {
'Authorization': AuthorizationHeaderValue
},
testChunks: false
});
if (resumable.support) {
for (var j = 0; j < files.length; j++) {
var fileLocal = files[j];
resumable.addFile(fileLocal);
}
resumable.on('fileAdded', function (file) {
resumable.upload();
});
resumable.on('fileProgress', function (file) {
var progressValue = Math.floor(resumable.progress() * 100);
Dropzone.prototype.defaultOptions.uploadprogress(file.file, progressValue, null);
});
resumable.on('fileSuccess', (function(_this) {
return function (file) {
return _this._finished([file.file], "success", null);
}
})(this));
resumable.on('error', (function(_this) {
return function (message, file) {
return _this._errorProcessing([file.file], message, null);
}
})(this));
} else {
//Fallback to original implementation
return originalDropzone.apply(this, arguments);
}
};
var myDropzone = new Dropzone(".dropzone", { var myDropzone = new Dropzone(".dropzone", {
url: Asgard.dropzonePostUrl, url: Asgard.dropzonePostUrl,
autoProcessQueue: true, autoProcessQueue: true,
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment