codigo actual del servidor, con avances de joan
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V2\Seller;
|
||||
|
||||
use App\Http\Resources\V2\UploadedFileCollection;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Upload;
|
||||
use Response;
|
||||
use Auth;
|
||||
use Storage;
|
||||
use Image;
|
||||
|
||||
class SellerFileUploadController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
if (auth()->user()->user_type == 'seller') {
|
||||
$all_uploads = Upload::where('user_id', auth()->user()->id);
|
||||
|
||||
if ($request->search != null) {
|
||||
$all_uploads->where('file_original_name', 'like', '%' . $request->search . '%');
|
||||
}
|
||||
if ($request->type != null) {
|
||||
$all_uploads->where('type', $request->type);
|
||||
}
|
||||
|
||||
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(30)->appends(request()->query());
|
||||
|
||||
return new UploadedFileCollection($all_uploads);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
"result" => false,
|
||||
"data" => []
|
||||
]);
|
||||
}
|
||||
|
||||
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 (auth()->user()->user_type == 'seller') {
|
||||
if ($request->hasFile('aiz_file')) {
|
||||
$upload = new Upload;
|
||||
$extension = strtolower($request->file('aiz_file')->getClientOriginalExtension());
|
||||
|
||||
if (
|
||||
env('DEMO_MODE') == 'On' &&
|
||||
isset($type[$extension]) &&
|
||||
$type[$extension] == 'archive'
|
||||
) {
|
||||
return $this->failed(translate('File has been inserted successfully'));
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
// Return MIME type ala mimetype extension
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
|
||||
// Get the MIME type of the file
|
||||
$file_mime = finfo_file($finfo, base_path('public/') . $path);
|
||||
|
||||
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 > 1500) {
|
||||
$img->resize(1500, 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),
|
||||
[
|
||||
'visibility' => 'public',
|
||||
'ContentType' => $extension == 'svg' ? 'image/svg+xml' : $file_mime
|
||||
]
|
||||
);
|
||||
if ($arr[0] != 'updates') {
|
||||
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 $this->success(translate('File has been inserted successfully'));
|
||||
}else{
|
||||
return $this->failed(translate("Upload file is missing"));
|
||||
}
|
||||
}
|
||||
return $this->failed(translate("You can't upload the file"));
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$upload = Upload::findOrFail($id);
|
||||
|
||||
if (auth()->user()->user_type == 'seller' && $upload->user_id != auth()->user()->id) {
|
||||
return $this->failed(translate("You don't have permission for deleting this!"));
|
||||
}
|
||||
try {
|
||||
if (env('FILESYSTEM_DRIVER') == 's3') {
|
||||
Storage::disk('s3')->delete($upload->file_name);
|
||||
if (file_exists(public_path() . '/' . $upload->file_name)) {
|
||||
unlink(public_path() . '/' . $upload->file_name);
|
||||
}
|
||||
} else {
|
||||
unlink(public_path() . '/' . $upload->file_name);
|
||||
}
|
||||
$upload->delete();
|
||||
return $this->success(translate('File deleted successfully'));
|
||||
} catch (\Exception $e) {
|
||||
$upload->delete();
|
||||
return $this->failed(translate('File deleted Failed'));
|
||||
}
|
||||
return $this->success(translate('File deleted successfully'));
|
||||
}
|
||||
|
||||
public function bulk_uploaded_files_delete(Request $request)
|
||||
{
|
||||
if ($request->id) {
|
||||
foreach ($request->id as $file_id) {
|
||||
$this->destroy($file_id);
|
||||
}
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public function get_preview_files(Request $request)
|
||||
{
|
||||
$ids = explode(',', $request->ids);
|
||||
$files = Upload::whereIn('id', $ids)->get();
|
||||
$new_file_array = [];
|
||||
foreach ($files as $file) {
|
||||
$file['file_name'] = my_asset($file->file_name);
|
||||
if ($file->external_link) {
|
||||
$file['file_name'] = $file->external_link;
|
||||
}
|
||||
$new_file_array[] = $file;
|
||||
}
|
||||
// dd($new_file_array);
|
||||
return $new_file_array;
|
||||
// return $files;
|
||||
}
|
||||
|
||||
public function all_file()
|
||||
{
|
||||
$uploads = Upload::all();
|
||||
foreach ($uploads as $upload) {
|
||||
try {
|
||||
if (env('FILESYSTEM_DRIVER') == 's3') {
|
||||
Storage::disk('s3')->delete($upload->file_name);
|
||||
if (file_exists(public_path() . '/' . $upload->file_name)) {
|
||||
unlink(public_path() . '/' . $upload->file_name);
|
||||
}
|
||||
} else {
|
||||
unlink(public_path() . '/' . $upload->file_name);
|
||||
}
|
||||
$upload->delete();
|
||||
flash(translate('File deleted successfully'))->success();
|
||||
} catch (\Exception $e) {
|
||||
$upload->delete();
|
||||
flash(translate('File deleted successfully'))->success();
|
||||
}
|
||||
}
|
||||
|
||||
Upload::query()->truncate();
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
//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 (auth()->user()->user_type == 'seller')
|
||||
? view('seller.uploads.info', compact('file'))
|
||||
: view('backend.uploaded_files.info', compact('file'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user