Skip to content

Commit 0d7e7bf

Browse files
author
coswat
committed
Image upload api created successfuly
1 parent d7bbf3b commit 0d7e7bf

9 files changed

+72
-145
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Api;
4+
5+
use App\Http\Controllers\Controller;
6+
use Illuminate\Http\Request;
7+
use App\Traits\HttpResponse;
8+
use Str;
9+
10+
class ImageUploadController extends Controller
11+
{
12+
use HttpResponse;
13+
public function index(Request $request){
14+
15+
try {
16+
17+
if($request->hasFile('image') && $request->file('image')->isValid()){
18+
$extension = $request->file('image')->getClientOriginalExtension();
19+
$image = Str::random(45).'.'.$extension;
20+
if($extension == 'png' || $extension == 'jpg' || $extension == 'jpeg'){
21+
$path = $request->image->storeAs('images',$image);
22+
23+
return $this->success([
24+
'image_url' => asset('storage/images/'.$image),
25+
'image_extension' => $extension
26+
],'image uploaded successfuly');
27+
}else{
28+
return $this->error('','This ' .$extension.' file not supported');
29+
}
30+
}elseif(!$request->hasFile('image')){
31+
return $this->error('','No file found to upload');
32+
}
33+
34+
} catch (\Throwable $e) {
35+
return $this->httpError($e->getMessage());
36+
}
37+
38+
}
39+
}

app/Providers/AppServiceProvider.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace App\Providers;
44

55
use Illuminate\Support\ServiceProvider;
6-
6+
use Illuminate\Support\Facades\Schema;
77
class AppServiceProvider extends ServiceProvider
88
{
99
/**
@@ -23,6 +23,6 @@ public function register()
2323
*/
2424
public function boot()
2525
{
26-
//
26+
Schema::defaultStringLength(191);
2727
}
2828
}

app/Traits/HttpResponse.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
namespace App\Traits;
3+
4+
trait HttpResponse {
5+
6+
protected function success($data,string $message = null , int $code = 200){
7+
return response()->json([
8+
'status' => 'request processed',
9+
'message' => $message,
10+
'data' => $data
11+
],$code);
12+
13+
}
14+
protected function error($data,string $message = null, int $code = 401){
15+
return response()->json([
16+
'status' => 'unauthorized',
17+
'message' => $message,
18+
'data' => $data
19+
],$code);
20+
}
21+
protected function httpError($message){
22+
return response()->json([
23+
'status' => 'internal server error',
24+
'message' => $message
25+
],500);
26+
}
27+
}

config/filesystems.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
*/
7171

7272
'links' => [
73-
public_path('storage') => storage_path('app/public'),
73+
public_path('storage') => storage_path('app'),
7474
],
7575

7676
];

database/migrations/2014_10_12_000000_create_users_table.php

Lines changed: 0 additions & 36 deletions
This file was deleted.

database/migrations/2014_10_12_100000_create_password_resets_table.php

Lines changed: 0 additions & 32 deletions
This file was deleted.

database/migrations/2019_08_19_000000_create_failed_jobs_table.php

Lines changed: 0 additions & 36 deletions
This file was deleted.

database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php

Lines changed: 0 additions & 37 deletions
This file was deleted.

routes/api.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
use Illuminate\Http\Request;
44
use Illuminate\Support\Facades\Route;
5-
5+
use App\Http\Controllers\Api\ImageUploadController;
66
/*
77
|--------------------------------------------------------------------------
88
| API Routes
@@ -17,3 +17,5 @@
1717
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
1818
return $request->user();
1919
});
20+
21+
Route::post('/upload-image',[ImageUploadController::class,'index']);

0 commit comments

Comments
 (0)