prüfen was passiert, wenn mehrere dateien mit dem gleichen dateinamen hochgeladen werden
This commit is contained in:
@@ -351,8 +351,10 @@ if ($action === 'identity_edit') {
|
||||
if ($safeName === '') {
|
||||
$safeName = 'file';
|
||||
}
|
||||
do {
|
||||
$storedName = bin2hex(random_bytes(12)) . '_' . $safeName;
|
||||
$destination = $uploadDir . $storedName;
|
||||
} while (is_file($destination));
|
||||
|
||||
if (!move_uploaded_file($tmpName, $destination)) {
|
||||
$fileUploadErrors[] = sprintf('Speichern von %s fehlgeschlagen.', $originalName);
|
||||
@@ -482,6 +484,18 @@ if ($action === 'identity_edit') {
|
||||
if ($identityFiles === false) {
|
||||
$identityFiles = [];
|
||||
}
|
||||
$duplicateFilenameCounts = [];
|
||||
foreach ($identityFiles as $file) {
|
||||
$filename = $file['filename'] ?? '';
|
||||
if ($filename === '') {
|
||||
continue;
|
||||
}
|
||||
$duplicateFilenameCounts[$filename] = ($duplicateFilenameCounts[$filename] ?? 0) + 1;
|
||||
}
|
||||
$duplicateFileNames = array_keys(array_filter(
|
||||
$duplicateFilenameCounts,
|
||||
static fn (int $count): bool => $count > 1
|
||||
));
|
||||
?>
|
||||
<!doctype html>
|
||||
<html>
|
||||
@@ -586,10 +600,18 @@ if ($action === 'identity_edit') {
|
||||
<?php if ($fileDeleteMessage !== ''): ?>
|
||||
<p style="color:#22c55e; margin-top:.25rem;"><?= htmlspecialchars($fileDeleteMessage) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($duplicateFileNames)): ?>
|
||||
<p style="color:#fbbf24; margin-top:.25rem;">
|
||||
Dateien mit identischem Dateinamen bleiben getrennt und können einzeln gelöscht.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<ul>
|
||||
<?php foreach ($identityFiles as $file): ?>
|
||||
<li>
|
||||
<?= htmlspecialchars($file['filename']) ?> (ID <?= (int)$file['id'] ?>)
|
||||
<?php if (!empty($duplicateFileNames) && in_array($file['filename'], $duplicateFileNames, true)): ?>
|
||||
<span style="color:#fbbf24; margin-left:.5rem; font-size:.85rem;">mehrfach vorhanden</span>
|
||||
<?php endif; ?>
|
||||
<form method="post" style="display:inline; margin-left:.75rem;">
|
||||
<input type="hidden" name="file_id" value="<?= (int)$file['id'] ?>">
|
||||
<button name="delete_file" type="submit"
|
||||
@@ -879,8 +901,6 @@ $identities = $sql->get("SELECT * FROM identities ORDER BY id DESC");
|
||||
|
||||
//TODO im bereich UUID bearbeiten sollen files mit dem dateinamen und einem link (target=_blank) dargestellt werden und nicht mit der id
|
||||
|
||||
//TODO prüfen was passiert, wenn mehrere dateien mit dem gleichen dateinamen hochgeladen werden
|
||||
|
||||
//TODO option schaffen eine bestehende datei zu überschreiben ??? bzw prüfen ob das notwendig ist
|
||||
|
||||
//TODO anzeige von einer gelöschten oder leeren datei ausblenden, bei vollzogenem löschvorgang
|
||||
|
||||
Reference in New Issue
Block a user