81 lines
3.1 KiB
PHP
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();
|