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 === '') {
|
if ($safeName === '') {
|
||||||
$safeName = 'file';
|
$safeName = 'file';
|
||||||
}
|
}
|
||||||
|
do {
|
||||||
$storedName = bin2hex(random_bytes(12)) . '_' . $safeName;
|
$storedName = bin2hex(random_bytes(12)) . '_' . $safeName;
|
||||||
$destination = $uploadDir . $storedName;
|
$destination = $uploadDir . $storedName;
|
||||||
|
} while (is_file($destination));
|
||||||
|
|
||||||
if (!move_uploaded_file($tmpName, $destination)) {
|
if (!move_uploaded_file($tmpName, $destination)) {
|
||||||
$fileUploadErrors[] = sprintf('Speichern von %s fehlgeschlagen.', $originalName);
|
$fileUploadErrors[] = sprintf('Speichern von %s fehlgeschlagen.', $originalName);
|
||||||
@@ -482,6 +484,18 @@ if ($action === 'identity_edit') {
|
|||||||
if ($identityFiles === false) {
|
if ($identityFiles === false) {
|
||||||
$identityFiles = [];
|
$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>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
@@ -586,10 +600,18 @@ if ($action === 'identity_edit') {
|
|||||||
<?php if ($fileDeleteMessage !== ''): ?>
|
<?php if ($fileDeleteMessage !== ''): ?>
|
||||||
<p style="color:#22c55e; margin-top:.25rem;"><?= htmlspecialchars($fileDeleteMessage) ?></p>
|
<p style="color:#22c55e; margin-top:.25rem;"><?= htmlspecialchars($fileDeleteMessage) ?></p>
|
||||||
<?php endif; ?>
|
<?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>
|
<ul>
|
||||||
<?php foreach ($identityFiles as $file): ?>
|
<?php foreach ($identityFiles as $file): ?>
|
||||||
<li>
|
<li>
|
||||||
<?= htmlspecialchars($file['filename']) ?> (ID <?= (int)$file['id'] ?>)
|
<?= 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;">
|
<form method="post" style="display:inline; margin-left:.75rem;">
|
||||||
<input type="hidden" name="file_id" value="<?= (int)$file['id'] ?>">
|
<input type="hidden" name="file_id" value="<?= (int)$file['id'] ?>">
|
||||||
<button name="delete_file" type="submit"
|
<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 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 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
|
//TODO anzeige von einer gelöschten oder leeren datei ausblenden, bei vollzogenem löschvorgang
|
||||||
|
|||||||
Reference in New Issue
Block a user