Dear Oscar,
In principle, you are right concerning the encoding. A few comments:
- on most browsers, also utf-8 filenames are accepted,
but the use of UTF-8 in the header fields is not recommended.
- For the percent encoding, one should use "ns_urlencode -path", e.g.,
ns_urlencode -part path {£ and € rates}
since the "ns_urlencode" without parameters (as in your example)
uses a special rule for the space character.
One should actually provide an API along the lines of:
ns_header_field_parameter -charset /charset/ -language /language/
name string
to ease its usage. ... maybe something for the next release...
All the best
-g
PS: Minor nitpick: RFC 5987 was obsoleted by RFC 8187
On 19.07.22 23:25, Oscar Rodriguez Fonseca wrote:
Dear all,
Just for the sake of completeness. If you need an utf-8 encoded
filename you may need to encode the filename (as per RFC 5987):
ns_set update [ns_conn outputheaders] Content-Disposition "attachment;
filename*=UTF-8''[ns_urlencode $filename]"
ns_set update [ns_conn outputheaders] Content-Disposition
"filename*=UTF-8''[ns_urlencode $filename]"
AFAIK it works well in any modern browser.
Best regards.
-----Mensaje original-----
*De*: Maksym Zinchenko <siqsu...@gmail.com
<mailto:maksym%20zinchenko%20%3csiqsu...@gmail.com%3e>>
*Responder a*: naviserver-devel@lists.sourceforge.net
*Para*: naviserver-devel@lists.sourceforge.net
*Asunto*: Re: [naviserver-devel] ns_returnfile return original file name
*Fecha*: Tue, 19 Jul 2022 16:33:58 -0100
Thank you all, that's exactly what I needed.
On Mon, Jul 18, 2022 at 1:00 PM Wolfgang Winkler via naviserver-devel
<naviserver-devel@lists.sourceforge.net> wrote:
Hi!
We use
ns_set update [ns_conn outputheaders] Content-Disposition
"attachment; filename=\"${filename}\""
for downloading and
ns_set update [ns_conn outputheaders] Content-Disposition
"filename=\"${filename}\""
for viewing files
Am 15.07.22 um 16:50 schrieb Maksym Zinchenko:
Hello, I have a question about how to return the original file name.
For example:
ns_register_proc GET /dev/rtrn_file ::dev::rtrn_file
proc rtrn_file {args} {
set f [file join /tmp test.csv]
ns_returnfile 200 [ns_guesstype "$f"] $f
}
When I do GET request I'm getting "rtrn_file.csv" instead of "test.csv"
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel
--
Univ.Prof. Dr. Gustaf Neumann
Head of the Institute of Information Systems and New Media
of Vienna University of Economics and Business
Program Director of MSc "Information Systems"
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel