Как загрузить URL (файлы http) с помощью Java на мой веб-сервер? - PullRequest
0 голосов
/ 22 мая 2011

Я пытаюсь сделать несколько загрузок на мой веб-сервер. Я хочу загрузить файлы, которые находятся на определенном веб-сайте, как и все файлы * .jpg, поэтому я начал пробовать. этот вид кода, используя FTP, URL и объектный файл.

    UploaderDownloader up = new UploaderDownloader();
    URL url = new URL("http://i1.nyt.com/images/2011/05/22/magazine/22moth_cover/22moth_cover-moth.jpg");
    File file = new File(url.getFile()); 
    up.upload("127.0.0.1", "USER", "PASSWORD", "/testeUploader/132.jpg",file);

но это не работает для меня. Итак, я ищу, как реализовать это, используя лучшие варианты. загрузить файл URL, которого нет на моем ПК, на веб-сервер.

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Если я вас правильно понял, вы хотите загрузить файл с HTTP-сервера, а затем загрузить его на FTP-сервер. В этом случае вам вообще не нужен объект File. Это полезно, только если вы хотите сохранить его в файловой системе локального диска, но вам это не нужно. Все, что вам нужно сделать, это получить InputStream файла с HTTP-сервера и затем отправить его на FTP-сервер.

Вот начальный пример того, как получить файл с HTTP-сервера в виде InputStream.

InputStream input = new URL("http://example.com/image.jpg").openStream();

Просто не так ли? Убедитесь, что вы уважаете robots.txt соответствующего сайта, иначе вы можете получить IP-бан.

Что касается FTP, базовая Java SE не предлагает никаких полезных API для этого, и я понятия не имею, какой FTP-клиент вы используете, поскольку ваш вопрос содержит только доморощенный и недокументированный код, поэтому вот только пример с Сеть Apache Commons Net FTPClient :

FTPClient ftp = new FTPClient();
ftp.connect("ftp.example.com");
ftp.login("username", "password");
ftp.storeFile("image.jpg", input); // <-- Here, it's just InputStream.
ftp.logout();

Вот и все.

0 голосов
/ 23 мая 2011

Где находится источник UploaderDownloader?Как правило, вы не можете выполнить загрузку файла, отсутствующего на вашем ПК, без предварительной загрузки файла на компьютер, а затем загрузки его на конечный сервер.

Возможно использование некоторых настроек FTP для сервераПередача на сервер или использование одного из других доступных решений для передачи файлов, таких как Dropbox или box.net, но обычно вы пытаетесь сначала выполнить локальную загрузку, а затем загрузку файла.Для загрузки и выгрузки по протоколу HTTP Apache HttpClient обычно является библиотекой выбора: см. Как сделать POST-запрос multipart / form-data с использованием Java? для части загрузки и http://hc.apache.org/httpcomponents-client-ga/tutorial/html/ дляобщий учебник.

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