FVS-Social-Projekt-Neu/FVS-Social/upload-post/upload-post.php

52 lines
1.7 KiB
PHP
Raw Normal View History

<?php
include '../db_connect.php';
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$user_id = $_SESSION['user_id'];
$text_content = $_POST['text_content'];
$image_path = NULL;
if (!empty($_FILES['image']['name'])) {
$upload_dir = "../posts/"; // Server-Seitiges Upload-Verzeichnis
$target_dir = "posts/"; // Pfad für die Datenbank
function generateUniqueFilename($directory, $filename) {
$fileInfo = pathinfo($filename);
$baseName = $fileInfo['filename'];
$extension = isset($fileInfo['extension']) ? '.' . $fileInfo['extension'] : '';
$counter = 1;
$newFilename = $filename;
while (file_exists($directory . DIRECTORY_SEPARATOR . $newFilename)) {
$newFilename = $baseName . "_" . $counter . $extension;
$counter++;
}
return $newFilename;
}
// Generiere einzigartigen Dateinamen
$original_filename = $user_id . "_" . basename($_FILES['image']['name']);
$unique_filename = generateUniqueFilename($upload_dir, $original_filename);
$target_file = $upload_dir . $unique_filename;
// Datei hochladen
if (move_uploaded_file($_FILES['image']['tmp_name'], $target_file)) {
$image_path = $target_dir . $unique_filename;
}
}
// Daten in die Datenbank speichern
$stmt = $pdo->prepare("INSERT INTO posts (user_id, text_content, image_path) VALUES (:user_id, :text_content, :image_path)");
$stmt->execute([
':user_id' => $user_id,
':text_content' => $text_content,
':image_path' => $image_path
]);
header("Location: ../index.php");
exit();
}
?>