Как скачать файл с удаленного сервера, используя asp.net - PullRequest
3 голосов
/ 17 марта 2010

Приведенный ниже код отлично работает для загрузки файла с текущего pc.plz. Предложите мне, как загрузить его с удаленного сервера по IP-адресу или любым другим способом

protected void Button1_Click(object sender, EventArgs e)
{
    const string fName = @"C:\ITFSPDFbills\February\AA.pdf";
    FileInfo fi = new FileInfo(fName);
    long sz = fi.Length;

    Response.ClearContent();
    Response.ContentType = MimeType(Path.GetExtension(fName));
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", System.IO.Path.GetFileName(fName)));
    Response.AddHeader("Content-Length", sz.ToString("F0"));
    Response.TransmitFile(fName);
    Response.End();
}

public static string MimeType(string Extension)
{
    string mime = "application/octetstream";
    if (string.IsNullOrEmpty(Extension))
        return mime;

    string ext = Extension.ToLower();
    Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
    if (rk != null && rk.GetValue("Content Type") != null)
        mime = rk.GetValue("Content Type").ToString();
    return mime;
}

Ответы [ 2 ]

3 голосов
/ 17 марта 2010

Было бы проще сделать это так:

WebClient webClient = new WebClient();
webClient.DownloadFile(remoteFileUrl, localFileName);
0 голосов
/ 17 марта 2010

Вы можете использовать HttpWebRequest, например:

        Uri uri = new Uri(""); // Here goes uri to the file.
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);

        using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
        {
            using (StreamReader reader = new StreamReader(webResponse.GetResponseStream()))
            {
                // Process response.
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...