Meine aktuelle Seite ermöglicht das Hochladen von Benutzerdateien. Um Kollisionen zu vermeiden, muss ich die gespeicherten Dateinamen in irgendeiner Weise verschlüsseln. Aber ich würde gerne in der Lage sein, originale Dateinamen für Downloads zu erhalten. Also, ich versuche, die Dateinamen zu kodierenCodierung der hochgeladenen Dateiname
- einzigartigen
- decodierbaren
Ab sofort zu sein, ich habe versucht, folgenden Code zu verwenden:
$hash = $file->hashName();
$fileName = base64_encode(json_encode([
'hash' => $hash,
'name' => $file->getClientOriginalName()
]));
return $fileName;
Aber base64_encode
erzeugt länger als 256 Zeichenfolgen, besonders wenn der Dateiname Unicode-Zeichen (wie kyrillisch) verwendet. Gibt es eine andere Möglichkeit, Dateinamen zu kodieren?
Möchten Sie nicht die ursprünglichen Dateinamen speichern? – revo
Können Sie nicht einfach die ursprünglichen Namen in der Datenbank speichern? – PeeHaa