added feature to save image into database and after upload it can be chose by dropdown

This commit is contained in:
Lasha Kapanadze 2025-08-18 19:45:38 +04:00
parent 493de65892
commit 939a4fe03e
2 changed files with 57 additions and 13 deletions

View File

@ -104,6 +104,11 @@ $(document).ready(function () {
const selector = $('<select id="photoSelector"></select>');
photos.forEach((photo, index) => {
const option = $('<option></option>').val(photo).text(`Photo ${index + 1}`);
// display option with photo name if available
if (photo.includes("/")) {
const photoName = photo.split("/").pop();
option.text(`Photo ${index + 1} - ${photoName}`);
}
selector.append(option);
});
@ -637,23 +642,34 @@ $(document).ready(function () {
const dataURL = canvas.toDataURL("image/png");
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
const defaultName = `photo_${$("#partsModal").data("iddatadb")}_${timestamp}.png`;
const iddatadb = $("#partsModal").data("iddatadb"); // 🟢 ეს გადავაგზავნოთ
const defaultName = `photo_${iddatadb}_${timestamp}.png`;
const newName = prompt("Inserisci il nome del file (senza estensione):", defaultName.split(".png")[0]);
if (newName) {
const finalName = newName + "_" + timestamp + ".png";
$.ajax({
url: "save_annotated_photo.php",
method: "POST",
data: { dataURL: dataURL, filename: finalName },
data: {
dataURL: dataURL,
filename: finalName,
iddatadb: iddatadb // 🟢 გადავცემთ PHP
},
success: function (response) {
if (response.success) {
alert("Foto salvata con successo: " + response.file_path);
// update photo list or refresh the modal
$("#samplePhoto").attr("src", response.file_path);
loadPhoto(iddatadb); // reload to update markers
clearCanvasMarkers(); // reset markers after save
} else {
alert("Errore nel salvataggio: " + response.message);
alert("Errore: " + response.message);
}
},
error: function (xhr, status, error) {
alert("Errore nel salvataggio della foto: " + error);
alert("Errore Ajax: " + error);
},
});
}

View File

@ -1,25 +1,53 @@
<?php
header('Content-Type: application/json');
include('include/headscript.php');
include('include/headscript.php'); // აქედან უნდა იყოს DB კავშირიც
error_reporting(E_ALL);
ini_set('display_errors', 1);
$dataURL = $_POST['dataURL'] ?? null;
$filename = $_POST['filename'] ?? null;
$dataURL = $_POST['dataURL'] ?? null;
$filename = $_POST['filename'] ?? null;
$iddatadb = $_POST['iddatadb'] ?? null; // 🟢 ახალი ველი
if (!$dataURL || !$filename) {
if (!$dataURL || !$filename || !$iddatadb) {
echo json_encode(['success' => false, 'message' => 'Dati mancanti']);
exit;
}
try {
// --- ფაილის შენახვა ---
$data = explode(',', $dataURL)[1];
$decodedData = base64_decode($data);
$filePath = '../photostrf/annotated/' . $filename; // Crea una sottocartella 'annotated' per le foto modificate
if (!file_exists('../photostrf/annotated')) {
mkdir('../photostrf/annotated', 0777, true);
$dirPath = '../photostrf/annotated';
if (!file_exists($dirPath)) {
mkdir($dirPath, 0777, true);
}
$filePath = $dirPath . '/' . $filename;
file_put_contents($filePath, $decodedData);
echo json_encode(['success' => true, 'file_path' => $filePath, 'message' => 'Foto salvata con successo']);
$db = DBHandlerSelect::getInstance();
$pdo = $db->getConnection();
// --- ბაზაში ჩაწერა ---
$stmt = $pdo->prepare("
INSERT INTO datadb_photos (iddatadb, file_path, file_name, uploaded_at, uploaded_by)
VALUES (:iddatadb, :file_path, :file_name, NOW(), :uploaded_by)
");
$stmt->execute([
':iddatadb' => $iddatadb,
':file_path' => $filePath,
':file_name' => $filename,
':uploaded_by'=> $iduserlogin
]);
echo json_encode([
'success' => true,
'file_path' => $filePath,
'message' => 'Foto salvata con successo e registrata nel DB'
]);
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Errore nel salvataggio: ' . $e->getMessage()]);
echo json_encode(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]);
}