casadoc/public/userportal/upload-document.php
2024-12-03 10:33:38 +01:00

81 lines
3.1 KiB
PHP

<?php
include('include/headscript.php');
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
// Controlla la connessione al database
if ($conn->connect_error) {
die(json_encode(['success' => false, 'message' => "Connection failed: " . $conn->connect_error]));
}
// Impostazioni della cartella di destinazione
$targetDir = "homedocuments/";
// Recupera i dati inviati tramite POST e FILES
$idhome = isset($_POST['idhome']) ? intval($_POST['idhome']) : 0;
$document_id = isset($_POST['document_id']) ? intval($_POST['document_id']) : 0;
$file = isset($_FILES['file']) ? $_FILES['file'] : null;
$expirydate = isset($_POST['expirydate']) ? $_POST['expirydate'] : null;
$note = isset($_POST['note']) ? $_POST['note'] : null;
// Controlla se il file è stato caricato correttamente
if ($file && $file['error'] === UPLOAD_ERR_OK) {
// Rinomina il file con lo schema idhome-timestamp-filename
$filename = basename($file['name']);
$fileExtension = pathinfo($filename, PATHINFO_EXTENSION);
$newFilename = $idhome . '-' . time() . '-' . $filename;
$targetFilePath = $targetDir . $newFilename;
// Verifica e crea la cartella se non esiste
if (!is_dir($targetDir)) {
mkdir($targetDir, 0777, true);
}
// Sposta il file nella cartella di destinazione
if (move_uploaded_file($file['tmp_name'], $targetFilePath)) {
// Determina lo stato di scadenza
$expiry_status = ($expirydate) ? 1 : 0;
// Inserisce il file nel database
$query = "INSERT INTO doc_storage (idhome, document_id, filename, expirystatus, expirydate, note, created_at, updated_at)
VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW())";
$stmt = $conn->prepare($query);
$stmt->bind_param("iissss", $idhome, $document_id, $newFilename, $expiry_status, $expirydate, $note);
if ($stmt->execute()) {
// Ottieni l'ID del documento appena inserito
$documentId = $stmt->insert_id;
// Ottieni la data di caricamento dal database
$stmtSelect = $conn->prepare("SELECT created_at FROM doc_storage WHERE id = ?");
$stmtSelect->bind_param("i", $documentId);
$stmtSelect->execute();
$result = $stmtSelect->get_result();
$row = $result->fetch_assoc();
$uploadDate = $row['created_at'];
$stmtSelect->close();
echo json_encode([
'success' => true,
'message' => "File uploaded successfully.",
'fileName' => $newFilename,
'uploadDate' => $uploadDate,
'documentId' => $documentId
]);
} else {
// Rimuove il file se l'inserimento nel DB fallisce
unlink($targetFilePath);
echo json_encode(['success' => false, 'message' => "Failed to insert into database: " . $stmt->error]);
}
$stmt->close();
} else {
echo json_encode(['success' => false, 'message' => "Failed to move the file."]);
}
} else {
echo json_encode(['success' => false, 'message' => "File upload error."]);
}
$conn->close();