http download file name

The HTTP header Content-Disposition allows you to suggest a file name.

The Content-Disposition response header field […] can be used to attach additional metadata, such as the filename to use when saving the response payload locally.

If you look at the BNF you'll see that the filename is specified as a quoted-string:

quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )

This would be a valid example:

Content-Disposition: attachment; filename="fname.ext"

Please note that single quotes ' are not valid. If you need to include quotes (") in your filename you can use ". However RFC-6266 suggests to avoid including quotes:

Avoid including the "" character in the quoted-string form of the filename parameter, as escaping is not implemented by some user agents, and "" can be considered an illegal path character.


You need to append the HTTP response header "Content-Disposition"

Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName +"\"");

In modern browsers you can also use download attribute on link tag:

<a href="http://localhost:8080/couch/getFile?dbName=xxx&file=test.xml" download="test.xml">
    get-file
</a>

You can check it's support on Can I use

Tags:

Http