Unduh file dengan URL dari Server melalui APEX
Saya mencoba membuat fungsi yang mengunduh file yang ada di server dengan URL. Saya memiliki APEX yang berjalan di Tomcat 9. Di server ada jalur / folder / file yang berisi file yang ingin saya unduh dengan url. Saya menemukan bahwa misalnya saya dapat mendownload file dari / i / folder dengan URL dengan mudah dengan misalnya http: // {host}: {port} /i/css/apex.css. Saya mencoba membuat pintasan ke / folder / file di folder itu. Sekarang ada jalur ./i/files/. Saat saya mengetik http: // {host}: {port} /i/files/file1.pdf saya mendapatkan 404.
Bagaimana saya bisa mengatur ini atau adakah cara yang lebih baik untuk melakukan itu?
Jawaban
APEX tidak dirancang untuk menyajikan file statis dengan cara itu. Struktur direktori / i / sudah ditentukan sebelumnya dan tidak selalu mengarah ke lokasi fisik di server seperti yang Anda pikirkan. Taruhan terbaik Anda adalah menempatkan file kustom Anda di server web terpisah (banyak orang menggunakan proxy terbalik di depan Tomcat, misalnya) dan memuatnya dari sana dengan URL statis "normal".
Saya menemukan solusi simples. Tambahkan saja ke baris server.xml
<Context docBase="/folder/files" path="/files"/>
Sekarang Anda harus ingat bahwa pengguna memiliki hak istimewa untuk membaca / mengeksekusi / mencari dari jalur ini (pemilik yang sama, atau hak istimewa untuk grup atau orang lain). Sekarang saya dapat dengan mudah menggunakan url di APEX (http: // {host}: {port} /files/file1.pdf)