Télécharger des fichiers avec l'URL du serveur via APEX

Aug 19 2020

J'essaye de créer une fonction qui télécharge des fichiers qui sont sur le serveur avec l'URL. J'ai APEX fonctionnant sur Tomcat 9. Sur le serveur, il y a un chemin / dossier / fichiers qui contient des fichiers que je veux télécharger avec l'URL. J'ai trouvé que, par exemple, je peux télécharger des fichiers à partir du dossier / i / avec une URL facilement avec par exemple http: // {host}: {port} /i/css/apex.css. J'ai essayé de créer un raccourci vers / dossier / fichiers dans ce dossier. Il existe maintenant un chemin ./i/files/. Lorsque je tape http: // {hôte}: {port} /i/files/file1.pdf, j'obtiens un 404.

Comment puis-je gérer cela ou y a-t-il une meilleure façon de le faire?

Réponses

pmdba Aug 20 2020 at 03:47

APEX n'est pas conçu pour servir des fichiers statiques de cette manière. La structure du répertoire / i / est prédéfinie et ne pointe pas nécessairement vers un emplacement physique sur le serveur comme vous le pensez. Votre meilleur pari est de placer vos fichiers personnalisés sur un serveur Web séparé (beaucoup de gens utilisent un proxy inverse devant Tomcat, par exemple) et de les charger à partir de là avec une URL statique "normale".

PawełŻurkiewicz Aug 20 2020 at 08:11

J'ai trouvé la solution simple. Ajoutez simplement à la ligne server.xml

<Context docBase="/folder/files" path="/files"/>

Maintenant, vous devez simplement vous rappeler que les utilisateurs ont le privilège de lire / exécuter / rechercher à partir de ce chemin (le même propriétaire, ou le privilège pour le groupe ou d'autres). Maintenant, je peux facilement utiliser l'url dans APEX (http: // {host}: {port} /files/file1.pdf)