From 436b284a3b15f2525204712b5b4f66d40d79d0bc Mon Sep 17 00:00:00 2001 From: Too Date: Tue, 26 Jun 2018 22:23:10 +0800 Subject: [PATCH] Add file size checking. Rename bankslip_url to china_bank_slip_path in chinabankslip table --- app/ChinaBankSlip.php | 2 +- .../Controllers/ChinaBankSlipController.php | 17 +++++++- ...abanksli_path_in_china_bank_slip_table.php | 31 +++++++++++++++ tests/Feature/BookingTest.php | 1 - tests/Feature/ChinaBankSlipTest.php | 39 +++++++++++++++++++ 5 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php create mode 100644 tests/Feature/ChinaBankSlipTest.php diff --git a/app/ChinaBankSlip.php b/app/ChinaBankSlip.php index c607ec34..d7354956 100644 --- a/app/ChinaBankSlip.php +++ b/app/ChinaBankSlip.php @@ -6,5 +6,5 @@ use Illuminate\Database\Eloquent\Model; class ChinaBankSlip extends Model { - protected $fillable = ['actual_transfer_amount','date','details','china_bank_slips']; + protected $fillable = ['actual_transfer_amount','date','details','china_bank_slip_path']; } diff --git a/app/Http/Controllers/ChinaBankSlipController.php b/app/Http/Controllers/ChinaBankSlipController.php index 9a2048d6..fd781cbd 100644 --- a/app/Http/Controllers/ChinaBankSlipController.php +++ b/app/Http/Controllers/ChinaBankSlipController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\ChinaBankSlip; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Storage; +use Validator; class ChinaBankSlipController extends Controller { @@ -45,6 +47,16 @@ class ChinaBankSlipController extends Controller $extension = $request->file('china_bank_slips')->getClientOriginalExtension(); // Filename to store $fileNameToStore= $filename.'_'.time().'.'.$extension; + + // File size checking + $validator = Validator::make($request->all(), [ + 'china_bank_slips' => 'max:3072' + ]); + + if($validator->fails()) + { + return response()->json(['message'=>'Image too large, upload files up to 3 MB'], 400); + } // Upload Image $path = $request->file('china_bank_slips')->storeAs('public/bankslip', $fileNameToStore); } else { @@ -55,8 +67,9 @@ class ChinaBankSlipController extends Controller $post->actual_transfer_amount = $request->input('actual_transfer_amount'); $post->date = $request->input('date'); $post->details = $request->input('details'); - $post->china_bank_slips = $fileNameToStore; - $post->save();; + $post->china_bank_slip_path = "123"; + $post->save(); + return response()->json(['message'=>$post], 200); } diff --git a/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php b/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php new file mode 100644 index 00000000..9c23bfc8 --- /dev/null +++ b/database/migrations/2018_06_26_141337_rename_bankslip_url_to_chinabanksli_path_in_china_bank_slip_table.php @@ -0,0 +1,31 @@ +renameColumn('bankslip_url', 'china_bank_slip_path'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index 7e1ef5fd..616b6b25 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -17,7 +17,6 @@ use App\Booking; use App\UserBankSlip; use App\Role; use App\SettingCredit; -use Illuminate\Support\Facades\File; class BookingTest extends TestCase { diff --git a/tests/Feature/ChinaBankSlipTest.php b/tests/Feature/ChinaBankSlipTest.php new file mode 100644 index 00000000..9d499b33 --- /dev/null +++ b/tests/Feature/ChinaBankSlipTest.php @@ -0,0 +1,39 @@ +image('comp.jpg')->size($size_in_kb); + + $response = + $this->postJson('api/upload-china-bankslip',[ + 'china_bank_slips' => $china_bank_slips_path, + 'actual_transfer_amount' => '12', + 'details' => "123123", + 'date' => "123123" + ]); + + if(!file_exists($china_bank_slips_path) || $size_in_kb > 3072){ + $response->assertStatus(400); + } + else{ + $response->assertSuccessful(); + } + } +}