Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

http download file name

Tags:

http

May i know how to assign a file-name to a a-href file download.

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

On right-clicking and Save as: A services running on the background will return test.xml contents and the user can save it locally. But here everytime user needs to type a filename for saving. Instead i'm thinking to pull the test.xml. May i know how to tell the browser to use "test.xml" as a download file name?

Will setting headers on HTTP response would work? if so may i know how we can do that?

like image 993
Shiv Avatar asked Nov 09 '12 11:11

Shiv


People also ask

How do I download a HTTP file?

Generally, downloading a file from a HTTP server endpoint via HTTP GET consists of the following steps: Construct the HTTP GET request to send to the HTTP server. Send the HTTP request and receive the HTTP Response from the HTTP server. Save the contents of the file from HTTP Response to a local file.

What is HTTP content disposition?

In a regular HTTP response, the Content-Disposition response header is a header indicating if the content is expected to be displayed inline in the browser, that is, as a Web page or as part of a Web page, or as an attachment, that is downloaded and saved locally.

What is content disposition attachment filename?

Content-Disposition is an optional header and allows the sender to indicate a default archival disposition; a filename. The optional "filename" parameter provides for this. This header field definition is based almost verbatim on Experimental RFC 1806 by R. Troost and S.

What does Err_response_headers_multiple_content_disposition mean?

The response from the server contained duplicate headers. This problem is generally the result of a misconfigured website or proxy. Only the website or proxy administrator can fix this issue. Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple distinct Content-Disposition headers received.

How do I download a file from a URL?

downloads.download () The download () function of the downloads API downloads a file, given its URL and other optional preferences. If the specified url uses the HTTP or HTTPS protocol, then the request will include all cookies currently set for its hostname.

What is the best way to download a file using HTTP?

Since .NET Framework 4.5, the HttpClient class has quickly taken over as the recommended means of working with any kind of HTTP request, including file downloads. HttpClient offers lots of different methods and is very powerful.

What is http downloader?

HTTP Downloader is an open source download manager for Windows. It works with FTPS and HTTPS protocols as well. The program's interface is quite basic and yet modern at the same time. I like the clean look of the pane and the menu bar.

How do I download files from the file menu?

The file menu can be used to add a URL to download, or to save, export and import the download history. Drag and drop is supported to start new downloads.


2 Answers

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

Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName +"\""); 
like image 61
vtortola Avatar answered Sep 19 '22 16:09

vtortola


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.

like image 25
Markus Malkusch Avatar answered Sep 19 '22 16:09

Markus Malkusch