/** * @param ImageUploadRequest $request * @return \Illuminate\Http\Response|JsonResponse */ public function upload(ImageUploadRequest $request, \Flow\File $file, \Flow\Request $flowRequest) { // We switch to flow.js if ($request->getMethod() === 'GET') { if (!$file->checkChunk()) { return \Response::make('', 204); } } else { if ($file->validateChunk()) { $file->saveChunk(); } else { return \Response::make('', 400); } } $filename = FileHelper::generateUniqueName($flowRequest->getFileName()); $destination = FileHelper::getTempDirectory() . DIRECTORY_SEPARATOR . $filename; if ($file->validateFile() && $file->save($destination)) { $tempFile = Temp::createFromFile($destination, $flowRequest->getFileName()); return new JsonResponse(['id' => $tempFile->getKey()]); } }
/** * @param $filename * @return string */ protected function sanitizeFilename($filename) { return FileHelper::sanitizeFilename($filename); }
/** * @return mixed */ public static function getTempDirectory() { return FileHelper::getTempDirectory(); }
/** * Register the application services. */ public function register() { /* * Register the service provider for the dependency. */ $this->app->register('Conner\\Tagging\\Providers\\TaggingServiceProvider'); $this->app->register('Collective\\Html\\HtmlServiceProvider'); $this->app->register('Intervention\\Image\\ImageServiceProvider'); $this->app->register(\Cviebrock\EloquentSluggable\ServiceProvider::class); $this->app->register('Roumen\\Sitemap\\SitemapServiceProvider'); $this->app->register('Rutorika\\Sortable\\SortableServiceProvider'); $this->app->register('Jenssegers\\Agent\\AgentServiceProvider'); $this->app->register('Spatie\\Permission\\PermissionServiceProvider'); $this->app->register('Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider'); /* * Create aliases for the dependency. */ $loader = AliasLoader::getInstance(); $loader->alias('Form', 'Collective\\Html\\FormFacade'); $loader->alias('Html', 'Collective\\Html\\HtmlFacade'); $loader->alias('Image', 'Intervention\\Image\\Facades\\Image'); $loader->alias('Agent', 'Jenssegers\\Agent\\Facades\\Agent'); /* * Assets manager */ $this->app->singleton(AssetsContract::class, AssetManager::class); /* * Manually register Mailchimp */ $this->app->singleton('Mailchimp', function ($app) { $config = $app['config']['mailchimp']; return new Mailchimp($config['apikey']); }); /* * Swap Permission model implementation */ $this->app->bind(Permission::class, \Despark\Cms\Models\Permission::class); $this->app->bind(Role::class, \Despark\Cms\Models\Role::class); /* * Image contract implementation */ $this->app->bind(ImageContract::class, function ($app, $attributes = []) { return new Image($attributes); }); /* * Flowjs */ $this->app->bind(\Flow\File::class, function () { $config = new \Flow\Config(['tempDir' => FileHelper::getTempDirectory()]); return new \Flow\File($config); }); /* * Switch View implementation */ $this->app->bind(ViewContract::class, View::class); $this->registerFactory(); }