How can i get a file name from Response.Header ? C#

c# get filename from content-disposition
get file from http request c#
how to get content-disposition from header
content-disposition: attachment not working
content-disposition: attachment multiple files
contentdispositionheadervalue c
httpclient get content-disposition
get filename from content-disposition java

This is a code, C#.

System.Net.HttpWebRequest _Response =
    (HttpWebRequest)System.Net.WebRequest.Create(e.Uri.AbsoluteUri.ToString());
_Response.Method = "GET";
_Response.Timeout = 120000;
_Response.Accept =
    "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
_Response.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
_Response.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
_Response.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");
_Response.AllowAutoRedirect = false;

System.Net.HttpWebResponse result = (HttpWebResponse)_Response.GetResponse();

for (int i = 0; i < result.Headers.Count; i++)
{
    MessageBox.Show(result.Headers.ToString());
}

And this is a result,

Cache-Control: private
Content-Type: text/html
Date: Tue, 06 Sep 2011 17:38:26 GMT
ETag: 
Location: http://fs31.filehippo.com/6428/59e79d1f80a74ead98bb04517e26b730/Firefox Setup 7.0b3.exe
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET

The correct approach is to see if a filename is provided by the Content-Disposition field and, failing that, to attempt to infer a filename from the Location field.

Be aware than the location field is simply the URL for the download request, and as such may not include an extension or even a meaningful name.

ContentDisposition.FileName Property (System.Net.Mime , This information is contained in the response header. A bit of parsing is required: String fileName = 'default name'; Pattern p = Pattern.compile('.+filename="(. browser - How can i get a file name from Response.Header ? C# - Stack Overflow. This is a code, C#. System.Net.HttpWebRequest _Response = (HttpWebRequest)System.Net.WebRequest.Create(e.Uri.AbsoluteUri.ToString());_Response.Method = "GET";_Response.Timeout = 120000;_Re Stack Overflow.

Do it like this:

    string fileName = Path.GetFileName(result.Headers["Location"]);

That way, you'll have the file name at the end of the location header.

Get filename HttpWebRequest - MSDN, In addition to defining the HTTP/1.1 protocol, this document serves as the Media Type name: message Media subtype name: http Required parameters: none If an HTTP header incorrectly carries a date value with a time zone other than  I am creating my own video file format and would like to write out a file header and frame headers. At the moment I just have placeholders defined as such: byte[] fileHeader = new byte[FILE_HEADER_SIZE * sizeof(int)]; byte[] frameHeader = new byte[FRAME_HEADER_SIZE * sizeof(int)]; I write them out using the following for the file header:

Given your headers from your request, you should be able to do:

 string file = result.Headers["Location"];

How to get file name in http response?, Implements multipart/form-data POST in C# http://www.ietf.org/rfc/rfc2388.txt of this param, since we will write the file data directly to the Stream string header = string. compiling the code in C# 4 I get an error CS0103: The name 'Response'​  to get one specific header, convert the Headers to a dictionary and then get then one you want Debug.WriteLine(response.Headers.ToDictionary(l=>l.Key,k=>k.Value)["X-BB-SESSION"]); This will throw an exception if the header is not in the dictionary so you better check it using ContainsKey first

If you have got the location of the file you can just extract the header you want (in this case I suppose it is indexed at 4 or at "Location") and then take the last part of the URL.

Content-Disposition, Some ways to download file names with international (non-asci) characters. file name is specified by a filename parametr of Content-Disposition http header. The file name is null. The file name is longer than the system-defined maximum length. The file name contains a colon (:). If the application does not have sufficient permissions to read the specified file, the Exists method returns false regardless of whether a path exists; the method does not throw an exception. See also. System.IO; C#

As the file is on a server you will not be able to retrieve the actual filename. Only what the web application is telling you.

This filename is in "Location".

However since the application is telling you that it is text/html it may be formatting the result before it sends it to you. The correct mime type for an executable is application/octet-stream.

On another note. It appears you are downloading the file in which case there is no need to be provided a path. The path of the file you download, is going to be whatever path you place the contents of the downloaded stream into. Therefore you save the file and put it wherever you have access to put it.

When the file is created you have to provide a path, otherwise it is placed in the same directory as the executable that is calling it.

I hope this helps

Setting a "Content-Disposition" HTTP Header in Web API Controller , The file name and other parameters are in the request headers, and the file to be The following HTTP headers must not be included in the b2_upload_file request: C# PHP. Code FILE_TO_UPLOAD=typing_test.txt MIME_TYPE=text/​plain  The file doesn't exist or doesn't exist at the specified location. Check the path and the spelling of the file name..NET Security. Do not rely on the name of a file to determine the contents of the file. For example, the file myFile.cs might not be a C# source file. See also. System.IO; C# Programming Guide; File System and the Registry (C#

HTTP/1.1: Appendices, You can get a List collection of the file paths in a directory. First get an array from GetFiles. Then you can convert the array to a List with the ToList extension method. Tip: Include the System.Linq namespace at the top first—it is included by default in new files. ToList Convert List, Array List

Multipart Form Post in C#, Get files from directory (with specified extension) You can specify search pattern. You can use wildcard specifiers in the search pattern, e.g. „*.bmp“ to select files with the extension or „a*“ to select files beginning with letter „a“.

HTTP headers and non-asci characters (Content-Disposition , Get Full Path of a File The FullName property returns just the full path of a file including the file name. The following code snippet returns the full path of a file. string fullFileName = fi.FullName;

Comments
  • You might want to change the name of the _Response variable to _Request. It's a HttpWebRequest, not a HttpWebResponse, and calling it _Response is a bit misleading.
  • It is very similar to Reed Copsey's answer, but that will give only the file name without the rest of the url.