Скачивайте файлы используя asp.net - PullRequest
3 голосов
/ 19 января 2009

Есть файл данных и некоторые файлы изображений, которые я должен загружать на наши локальные серверы каждый вечер, используя asp.net. Каков наилучший способ сделать это?

UPDATE

Хорошо, после просмотра ответов я вижу, что мое первоначальное сообщение об использовании asp.net - плохой выбор. Как бы вы написали это для консольного приложения в C #. Я не уверен, какие классы я использую для подключения и загрузки файлов с удаленного сервера.

Спасибо

Ответы [ 6 ]

9 голосов
/ 19 января 2009

"Как бы вы написали это для консольного приложения на C #."

Создайте консольное приложение C #. Добавить ссылку на System.Net.


using System;
using System.Net;

namespace Downloader
{
    class Program
    {
        public static void Main(string[] args)
        {
            using (WebClient wc = new WebClient())
            {
                wc.DownloadFile("http://www.mydomain.com/resource.img", "c:\\savedImage.img");
            }
        }
    }
}
1 голос
/ 20 июня 2016

Для загрузки любого файла с удаленного URL вы можете использовать WebClient в C # внутри пространства имен System.Net.

публичная FileResult Song (струнная песня) {

        WebClient client = new WebClient();
        var stream = client.OpenRead("http://www.jplayer.org/audio/mp3/Miaow-03-Lentement.mp3");

        return File(stream, "audio/mpeg");

    }

Для загрузки данных каждую ночь вы можете использовать планировщик задач. http://www.quartz -scheduler.net / может помочь вам при планировании задач

0 голосов
/ 19 января 2009

Если вы не можете сделать это с помощью FTP, вы хотите использовать HttpWebRequest и HttpWebResponse для выполнения этой работы. Из MSDN :

using System;
using System.Net;
using System.Text;
using System.IO;


    public class Test
    {
        // Specify the URL to receive the request.
        public static void Main (string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);

            // Set some reasonable limits on resources used by this request
            request.MaximumAutomaticRedirections = 4;
            request.MaximumResponseHeadersLength = 4;
            // Set credentials to use for this request.
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

            Console.WriteLine ("Content length is {0}", response.ContentLength);
            Console.WriteLine ("Content type is {0}", response.ContentType);

            // Get the stream associated with the response.
            Stream receiveStream = response.GetResponseStream ();

            // Pipes the stream to a higher level stream reader with the required encoding format. 
            StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

            Console.WriteLine ("Response stream received.");
            Console.WriteLine (readStream.ReadToEnd ());
            response.Close ();
            readStream.Close ();
        }
    }

/*
The output from this example will vary depending on the value passed into Main 
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/
0 голосов
/ 19 января 2009

Метод DownloadFile в классе System.Net.WebClient, вероятно, является хорошим началом Вы даете ему строку URL и имя файла, а он делает все остальное. System.NET.WebClient на MSDN

Вы даже можете установить пользовательские строки пользовательских агентов и загружать файлы, используя этот класс.

0 голосов
/ 19 января 2009

Обычно вы этого не делаете через ASP.NET. Код веб-страницы выполняется только при выполнении запроса HTTP / HTTPS, который обычно запускается конечными пользователями с помощью веб-браузера или веб-сканеров.

Вы хотите использовать что-то вроде FTP для загрузки файлов и службу Windows для автоматизации инициации загрузки.


ОБНОВЛЕНО в ответ на обновление вопроса:

Вы можете выполнить простой поиск в Google , чтобы найти много информации о загрузке через FTP в .NET.

Проверьте это Клиентская библиотека C # FTP .

А вот несколько хороших ссылок по созданию службы Windows в .NET:

http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

http://www.developer.com/net/net/article.php/2173801

0 голосов
/ 19 января 2009

Для того, чтобы делать это каждую ночь, вы должны настроить его как запланированное задание на своем сервере, чтобы попасть на определенную веб-страницу asp.net и выполнить нужный код.

Ваша страница ASP.NET будет иметь код для выхода и загрузки файла и выполнения любой необходимой обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...