diff --git a/.htaccess b/.htaccess index 6ab95dc070992696d0911fa5065d593fc7042dfa..f403d0d8d71969e0a4e746b9d12895449cc43a2e 100644 --- a/.htaccess +++ b/.htaccess @@ -29,6 +29,7 @@ RewriteRule ^api/get-places-location$ src/getLocationServerSide.php RewriteRule ^api/get-places-category$ src/getCategoryServerSide.php RewriteRule ^api/get-places-count$ src/getPlaceCountServerSide.php RewriteRule ^api/get-place-info$ src/getPlaceInfo.php +RewriteRule ^api/get-place-image$ src/getPlaceImage.php RewriteRule ^api/add-destination$ src/addDestinationController.php RewriteRule ^api/profile/img$ src/profileImgController.php diff --git a/public/js/placeselection.js b/public/js/placeselection.js index bacaedfb12acd21960172b458973d437872afd73..ec607f0d56e7696bd62bf1be6abfdd96c7be31a0 100644 --- a/public/js/placeselection.js +++ b/public/js/placeselection.js @@ -79,10 +79,35 @@ document.addEventListener("DOMContentLoaded" , async () => { var newLink = document.createElement("a"); newLink.href = "/info-place?placeid="+place["PlaceID"]; - var newImage = document.createElement("img"); - newImage.src = "../../public/package/purpletravel.jpg"; - newImage.alt = "destination1"; + + fetch('/api/get-place-image', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + PlaceId: place["PlaceID"], + }), + }) + .then(response => { + console.log(response); + if (response.ok) { + return response.blob(); + } else { + throw new Error('Profile picture not found.'); + } + }) + .then(blob => { + const imageUrl = URL.createObjectURL(blob); + console.log("TESS" + imageUrl); + newImage.src = imageUrl; + newImage.alt = "destination1"; + }) + .catch(error => { + console.error('error getting profile image:', error); + }); + var newH2 = document.createElement("h2"); newH2.textContent = place["PlaceName"]; diff --git a/src/getPlaceImage.php b/src/getPlaceImage.php new file mode 100644 index 0000000000000000000000000000000000000000..852d951fdbd86f45bb7457052bb9a3023b568263 --- /dev/null +++ b/src/getPlaceImage.php @@ -0,0 +1,60 @@ +<?php +if ($_SERVER["REQUEST_METHOD"] == "POST") { + try { + $postData = file_get_contents('php://input'); + + $requestData = json_decode($postData); + + if ($requestData !== null) + { + $host = "172.21.0.3"; + $port = "3306"; + $dbusername = "root"; + $dbpassword = "1234"; + $dbname = "travelution_database"; + + try { + $placeid = $requestData->PlaceId; + $pdo = new PDO("mysql:host=$host;port=$port;dbname=$dbname", $dbusername, $dbpassword); + + // Set PDO to throw exceptions on errors + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $sql = "SELECT PlaceImg FROM PlaceImage WHERE PlaceID='$placeid'"; + $stmt = $pdo->prepare($sql); + $stmt->execute(); + + if ($stmt->rowCount() == 0) { + $res = ['message' => 'Image not found']; + echo json_encode($res); + } else { + $fileName = $stmt->fetch((PDO::FETCH_ASSOC))["PlaceImg"]; + $fileName = "../db/PlaceImg/" . $fileName; + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + header('Content-Type: image/' . $extension); + readfile($fileName); + $res = ['message' => 'Image found']; + echo json_encode($res); + } + + } catch (PDOException $e) { + $res = ['message' => $e]; + echo json_encode($res); + } + + + + + } + else + { + $res = ['message' => "Post id null"]; + echo json_encode($res); + } + + } catch (PDOException $e) { + $res = ['message' => $e]; + echo json_encode($res); + } +} +?> \ No newline at end of file