castParams == 'resource') { return new FileResource(app()->file); } if (!is_null(array_intersect(array_keys($request->all()), $this->availableParams))) { $imageProcessor->process(app()->file->getPath(), app()->file->getModifiedPath(), $request->all()); return response()->file(app()->file->getModifiedPath()); } return response()->file(app()->file->getPath()); } // for local private we didn't talk about it // public function private($collection, $path) // { // Storage::disk('local')->download($path); // } public function store(FileStoreRequest $request, ImageProcessor $imageProcessor) { $request->file = $imageProcessor->convertImage($request->file->path(), '/tmp/' . app()->uuid . '.' . app()->collection->ext); if (!is_null(app()->collection->process)) { $request->file = $imageProcessor->process($request->file->path(), '/tmp/' . app()->uuid . '.' . app()->collection->ext, app()->collection->process); } $fileResource = null; DB::transaction(function () use ($request, &$fileResource) { $uuid = app()->uuid; $fileResource = File::create([ 'uuid' => $uuid, 'original_name' => $request->name, 'public' => $request->public, 'ext' => $request->file->extension(), 'mimetype' => $request->file->getMimeType(), 'width' => getimagesize($request->file)[0], 'height' => getimagesize($request->file)[1], 'file_size' => $request->file->getSize(), 'sort' => $request->file->getSize(), 'alts' => $request->alts, 'description' => $request->description, 'user_id' => auth()->id(), 'ip' => $request->ip(), 'collection_id' => app()->collection->id, 'published_at' => $request->published_at, 'server_path' => '/' . date('y') . '/' . date('m') . '/', ]); if (!app()->collection->tmp_support && app()->collection->count == 1) { File::where('user_id', auth()->id())->delete(); } $storedFile = Storage::disk(app()->collection->disk)->putFileAs($fileResource->server_path, $request->file, $fileResource->uuid . '.' . app()->collection->ext); if (app()->collection->public) { Storage::disk(app()->collection->disk)->setVisibility($storedFile, 'public'); } }); return new FileResource($fileResource); } public function update(FileUpdateRequest $request) { app()->file->update($request->all()); return new FileResource(app()->file); } public function destroy() { if (app()->file->trashed()) { return app()->file->restore(); } return app()->file->delete(); } }