getClientOriginalName(); $extension = $file->getClientOriginalExtension(); $mine = $file->getClientMimeType(); $size = $file->getSize(); $originalNameWithoutExt = substr($originalName, 0, strlen($originalName) - strlen($extension) - 1); $filename = Util::sanitize($originalNameWithoutExt, true, false, true); $allowed_filename = uniqid() . '_' . $filename.".".$extension; $file->storeAs('dc/files', $allowed_filename, 'public'); // $store = $file->store('files/'); $dc_file = DcFile::create([ 'filename' => $allowed_filename, 'original_name' => $originalName, 'ext' => $extension, 'mine' => $mine, 'size' => $size ]); $this->makeThumbFromFile($dc_file); return $dc_file; } public function makeThumb($id){ $file = DcFile::findOrFail($id); $this->makeThumbFromFile($file); } public function makeThumbFromFile($file) { $path = $file->getFile(true); $filename = $file->filename; $mine = \File::mimeType($path); //make thumb $allowedMimeTypes = ['image/jpeg','image/gif','image/png']; if (in_array($mine, $allowedMimeTypes)) { $img = Image::make($path); $img->resize(542, 360, function ($c) { $c->aspectRatio(); $c->upsize(); }); \Storage::disk('public')->put('dc/thumb/'.basename($filename), (string) $img->encode()); $img = Image::make($path); $img->resize(1600, 900, function ($c) { $c->aspectRatio(); $c->upsize(); }); \Storage::disk('public')->put('dc/big/'.basename($filename), (string) $img->encode()); } $allowedMimeTypes = ['application/pdf']; if (in_array($mine, $allowedMimeTypes)) { $imagick = new \Imagick ($path.'[0]'); // 0 specifies the first page of the pdf $imagick->setImageBackgroundColor('#ffffff'); $imagick = $imagick->mergeImageLayers( Imagick::LAYERMETHOD_FLATTEN ); $imagick->setImageFormat('jpg'); // set the format of the output image $imagick->setImageCompression(\Imagick::COMPRESSION_JPEG); $imagick->setImageCompressionQuality(60); $imagick->resizeImage(1600, 900, \Imagick::FILTER_LANCZOS, 1,1); $filestore = \Storage::disk('public')->path('dc/big/').basename($filename).".jpg"; $imagick->writeImage($filestore); $imagick->resizeImage(542, 360, \Imagick::FILTER_LANCZOS, 1,1); $filestore = \Storage::disk('public')->path('dc/thumb/').basename($filename).".jpg"; $imagick->writeImage($filestore); } return true; } public function tagsUpdate($id, $tags){ $file = DcFile::findOrFail($id); $file_tags = DcFileTag::where('file_id', $file->id)->get(); //remove Tags foreach ($file_tags as $file_tag) { if(is_array($tags) && ($pos = array_search($file_tag->tag_id, $tags)) !== FALSE){ unset($tags[$pos]); }else{ $file_tag->delete(); } } //set taTagsgs if(is_array($tags)){ foreach ($tags as $key => $tag_id) { DcFileTag::create([ 'file_id' => $file->id, 'tag_id' => $tag_id ]); } } return true; } public function deleteThumb($id){ $file = DcFile::findOrFail($id); $path_thumb = $file->getThumb(true); if (file_exists($path_thumb)) { unlink($path_thumb); } $path_big = $file->getBig(true); if (file_exists($path_big)) { unlink($path_big); } return true; } public function deleteFile($id){ $file = DcFile::findOrFail($id); $path_thumb = $file->getThumb(true); if (file_exists($path_thumb)) { unlink($path_thumb); } $path_big = $file->getBig(true); if (file_exists($path_big)) { unlink($path_big); } $path = $file->getFile(true); if (file_exists($path)) { unlink($path); } $file->delete(); return true; } }