Wenn Sie zu einer URL gehen möchten /up/xyz.jpg
und tatsächlich bei /download/counter/xyz/jpg
enden, können Sie einfach eine neue Aktion/Endpunkt /up/{filename}
hinzufügen und den Dateinamen analysieren, indem Sie den Basisnamen von extention aufteilen, um sicherzustellen, dass sie in den dreien sind gültige Erweiterungen
Es ist auch möglich, drei weitere Alias Routen zum /up/
Pfadpräfix haben:
/**
* @Route("/download/counter/{filename}/{ext}", name="downloadcounterfile")
* @Route("/up/{filename}.jpg", defaults={"ext"="jpg"})
* @Route("/up/{filename}.pdf", defaults={"ext"="pdf"})
* @Route("/up/{filename}.zip", defaults={"ext"="zip"})
*/
public function downloadcounterfileAction(Request $request, $filename, $ext)
{
echo "filename:$filename, ext:$ext\n";die;
}
In Anbetracht der oben Route-Block und Verfahren, auf die URL gehen: /up/fred.zip
zeigt
filename:fred, ext:zip
/download/counter/fred/zip
erzeugt das gleiche Ergebnis, das in den aufgeführten @Routes enthalten ist.
Obwohl es fehlschlägt, wenn es einen vollständigen Punkt im Dateinamen gibt - No route found for "GET /up/fr.ed.zip"
.
* Aber die Funktion "downloadcounterfileAction" wird nie ausgeführt * - Sie haben wahrscheinlich andere RewriteRules, die vorhandene Dateien direkt bereitstellen, ohne sie auf Ihren Frontcontroller zu schreiben. Zumindest die Standard-Symfony '.htaccess' hat solche Regeln. – ccKep
danke für die Vorschläge. Endlich habe ich eine effektive Lösung gefunden: awstats !!! es gibt detaillierte Download-Statistiken. Ich benutze es für meine Website: sendeyo.com, die Datei-Hosting gewidmet ist;) – bestpostmaster