# Record covers
- Every record has a cover image that is stored locally in the /storage/covers directory
- As you may have noticed, there is no
cover
column in therecords
table - The name of the image refers to the record's
mb_id
column
E.g. if themb_id
value isf0a4ed57-10e0-4c37-81b4-36311dc7d4b6
, the cover image must bef0a4ed57-10e0-4c37-81b4-36311dc7d4b6.jpg
- Later on in the course, we discuss some scripts to upload, replace and delete cover images
- To start using the covers, we prepared a small script to download a zip file containing all the covers and store them locally in the right folder
# Create a symlink to the storage directory
- If you followed all the instructions when starting up our project, the symlink should already be created
- If not, you can create it by running the following command in your terminal:
php artisan storage:link
link already exists
- If you execute the
php artisan storage:link
more than once, you get the following error: - You can ignore this error, as the link was already created during the initial startup of the project
# Download the covers
REMARKS
- The script we prepared is written in "pure PHP" and does not use the Laravel framework, therefore we will not discuss this code in detail
- Later on, you can re-run this script every time you need to reset to the default covers
- Create a new file download_covers.php inside the public directory
- Copy the following code into public/download_covers.php
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Download covers</title> <script src="https://cdn.tailwindcss.com?plugins=typography"></script> </head> <body class="p-4 bg-green-200"> <h1 class="text-2xl font-bold mb-2">Download covers</h1> <div class="max-w-3xl bg-white/75 border rounded-md shadow-xl p-4"> <?php $download_url = "https://pverhaert.sinners.be/covers_vinylshop.zip"; $download_to = "storage/covers.zip"; $script = basename($_SERVER['PHP_SELF']); file_put_contents($download_to, fopen($download_url, 'r')); $path = pathinfo(realpath($download_to), PATHINFO_DIRNAME); $zip = new ZipArchive; $res = $zip->open($download_to); if ($res === TRUE) { $zip->extractTo($path); $zip->close(); echo "<p>The file <b>$download_url</b><br>was successfully extracted to <b>$path</b></p>"; unlink($download_to); } else { echo "<p>Couldn't open <b>$download_to</b></p>"; } echo '<p class="mt-6"><a href="/" class="px-6 py-2 bg-green-600 text-white rounded">BACK HOME</a></p>'; ?> </div> </body> </html>
Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
- Run the script by opening the url http://vinyl_shop.test/download_covers.php (opens new window) in your browser
- Because of the symlink, the covers will be visible in the storage/app/public/covers directory and in the public/storage/covers directory
- Open the url http://vinyl_shop.test/storage/covers/f0a4ed57-10e0-4c37-81b4-36311dc7d4b6.jpg (opens new window) to check one of the covers
covers folder not visible
- It might be possible that the
covers
folder doesn't appear in PhpStorm. - Try to right-click the
storage/app/public
folder and chooseReload from Disk
to force your working directory to refresh
WARNING
All PHP files you create directly in the public directory (like download_covers.php) are completely separated from Laravel and therefore you should not create a route in web.php either.