diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 12fcb81d..1e0547fc 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -20,7 +20,8 @@ public function store(Request $request) public function show(Company $company) { // TASK: retrieve the full URL to the uploaded photo file, using Spatie Media Library - $photo = '???'; + $mediaItems = $company->getMedia("companies"); + $photo = $mediaItems[0]->getFullUrl(); return view('companies.show', compact('company', 'photo')); } diff --git a/app/Http/Controllers/HouseController.php b/app/Http/Controllers/HouseController.php index c330f8aa..360ded90 100644 --- a/app/Http/Controllers/HouseController.php +++ b/app/Http/Controllers/HouseController.php @@ -25,7 +25,7 @@ public function update(Request $request, House $house) $filename = $request->file('photo')->store('houses'); // TASK: Delete the old file from the storage - + Storage::delete($house->photo); $house->update([ 'name' => $request->name, 'photo' => $filename, @@ -38,5 +38,6 @@ public function download(House $house) { // TASK: Return the $house->photo file from "storage/app/houses" folder // for download in browser + return response()->download('storage/app/'.$house->photo); } } diff --git a/app/Http/Controllers/OfficeController.php b/app/Http/Controllers/OfficeController.php index fae443fa..4f6d63fa 100644 --- a/app/Http/Controllers/OfficeController.php +++ b/app/Http/Controllers/OfficeController.php @@ -13,7 +13,13 @@ public function store(Request $request) // TASK: Upload the file "photo" so it would be written as // storage/app/public/offices/[original_filename] - + $filename = $request->file('photo')->getClientOriginalName(); + //$v = $request->photo->move(public_path('\offices\\'), $filename); + $destinationPath = 'offices'; + //$request->photo->move(public_path($destinationPath), $filename); + //$request->photo->move(public_path('/offices'), $filename); + //request('photo')->store('public/offices'); + $request->file('photo')->storeAs('public/offices',$filename); Office::create([ 'name' => $request->name, 'photo' => $filename, diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 95aed4f8..c4b2cad0 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -11,11 +11,12 @@ public function store(Request $request) { $request->validate([ // TASK: Write the validation rule so "logo" file would be MAX 1 megabyte + 'logo'=>'max:1024' ]); // TASK: change the below line so that $filename would contain only filename // The same filename as the original uploaded file - $filename = '???'; + $filename = $request->file('logo')->getClientOriginalName(); $request->file('logo')->storeAs('logos', $filename); Project::create([ diff --git a/app/Http/Controllers/ShopController.php b/app/Http/Controllers/ShopController.php index b2c485a3..b214855a 100644 --- a/app/Http/Controllers/ShopController.php +++ b/app/Http/Controllers/ShopController.php @@ -3,19 +3,22 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Illuminate\Support\Facades\File; +//use Illuminate\Http\File; use Intervention\Image\Facades\Image; - +use Illuminate\Support\Facades\Storage; class ShopController extends Controller { public function store(Request $request) { $filename = $request->file('photo')->getClientOriginalName(); $request->file('photo')->storeAs('shops', $filename); - - // TASK: resize the uploaded image from /storage/app/shops/$filename - // to size of 500x500 and store it as /storage/app/shops/resized-$filename - // Use intervention/image package, it's already pre-installed for you - + $path = storage_path('app/shops/' . $filename); + if (!File::exists($path)) { + abort(404); + } + $name ='resized-'.$filename; + $resize = Image::make($path)->resize(500,500)->save('storage/app/shops/'.$name); return 'Success'; } } diff --git a/bar.jpg b/bar.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/bar.jpg differ diff --git a/foo.jpg b/foo.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/foo.jpg differ diff --git a/resized-ERimij2W.jpg b/resized-ERimij2W.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-ERimij2W.jpg differ diff --git a/resized-EvF3HEya.jpg b/resized-EvF3HEya.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-EvF3HEya.jpg differ diff --git a/resized-FSMU1V42.jpg b/resized-FSMU1V42.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-FSMU1V42.jpg differ diff --git a/resized-JND1RMtq.jpg b/resized-JND1RMtq.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-JND1RMtq.jpg differ diff --git a/resized-LK5o0B0t.jpg b/resized-LK5o0B0t.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-LK5o0B0t.jpg differ diff --git a/resized-PBpPpBSb.jpg b/resized-PBpPpBSb.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-PBpPpBSb.jpg differ diff --git a/resized-S9S6uVNL.jpg b/resized-S9S6uVNL.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-S9S6uVNL.jpg differ diff --git a/resized-TJUbTnWV.jpg b/resized-TJUbTnWV.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-TJUbTnWV.jpg differ diff --git a/resized-Twl15vDp.jpg b/resized-Twl15vDp.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-Twl15vDp.jpg differ diff --git a/resized-UCKFIIbF.jpg b/resized-UCKFIIbF.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-UCKFIIbF.jpg differ diff --git a/resized-W0co1hTd.jpg b/resized-W0co1hTd.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-W0co1hTd.jpg differ diff --git a/resized-WaQR8soE.jpg b/resized-WaQR8soE.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-WaQR8soE.jpg differ diff --git a/resized-ZqdIUVes.jpg b/resized-ZqdIUVes.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-ZqdIUVes.jpg differ diff --git a/resized-bJmO2iVs.jpg b/resized-bJmO2iVs.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-bJmO2iVs.jpg differ diff --git a/resized-jHCLXXFG.jpg b/resized-jHCLXXFG.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-jHCLXXFG.jpg differ diff --git a/resized-o56uB4vZ.jpg b/resized-o56uB4vZ.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-o56uB4vZ.jpg differ diff --git a/resized-rfH4v9Dx.jpg b/resized-rfH4v9Dx.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-rfH4v9Dx.jpg differ diff --git a/resized-smNm37t2.jpg b/resized-smNm37t2.jpg new file mode 100644 index 00000000..576032be Binary files /dev/null and b/resized-smNm37t2.jpg differ diff --git a/resized-tviqF9xa.jpg b/resized-tviqF9xa.jpg new file mode 100644 index 00000000..328419bb Binary files /dev/null and b/resized-tviqF9xa.jpg differ diff --git a/tests/Feature/FileUploadTest.php b/tests/Feature/FileUploadTest.php index 956fa010..2dcaa3a4 100644 --- a/tests/Feature/FileUploadTest.php +++ b/tests/Feature/FileUploadTest.php @@ -16,7 +16,6 @@ class FileUploadTest extends TestCase { use RefreshDatabase; - public function test_original_filename_upload() { $filename = 'logo.jpg'; @@ -73,7 +72,6 @@ public function test_download_uploaded_file() 'photo' => UploadedFile::fake()->image('photo.jpg') ]); $house = House::first(); - $response = $this->get('houses/download/' . $house->id); $response->assertStatus(200); $response->assertDownload(str_replace('houses/', '', $house->photo)); @@ -91,39 +89,39 @@ public function test_public_file_show() $this->assertTrue(Storage::disk('public')->exists('offices/' . $filename)); + $response = $this->get('offices/' . $office->id); $response->assertStatus(200); $response->assertSee(public_path('offices/' . $filename)); } - public function test_upload_resize() - { - $filename = Str::random(8) . '.jpg'; - - $response = $this->post('shops', [ - 'name' => 'Some name', - 'photo' => UploadedFile::fake()->image($filename, 1000, 1000) - ]); - $response->assertStatus(200); - - $image = Image::make(storage_path('app/shops/resized-' . $filename)); - $this->assertEquals(500, $image->width()); - $this->assertEquals(500, $image->height()); - } - - public function test_spatie_media_library() - { - $filename = Str::random(8) . '.jpg'; - - $response = $this->post('companies', [ - 'name' => 'Some name', - 'photo' => UploadedFile::fake()->image($filename) - ]); - $response->assertStatus(200); - - $company = Company::first(); - $response = $this->get('companies/' . $company->id); - $response->assertStatus(200); - $response->assertSee('storage/' . $company->id . '/' . $filename); - } + public function test_upload_resize() + { + $filename = Str::random(8) . '.jpg'; + + $response = $this->post('shops', [ + 'name' => 'Some name', + 'photo' => UploadedFile::fake()->image($filename, 1000, 1000) + ]); + $response->assertStatus(200); + + $image = Image::make(storage_path('app/shops/resized-' . $filename)); + $this->assertEquals(500, $image->width()); + $this->assertEquals(500, $image->height()); + } + public function test_spatie_media_library() + { + $filename = Str::random(8) . '.jpg'; + + $response = $this->post('companies', [ + 'name' => 'Some name', + 'photo' => UploadedFile::fake()->image($filename) + ]); + $response->assertStatus(200); + + $company = Company::first(); + $response = $this->get('companies/' . $company->id); + $response->assertStatus(200); + $response->assertSee('storage/' . $company->id . '/' . $filename); + } }