Java-код для загрузки файла с сервера - PullRequest
5 голосов
/ 17 марта 2011

с использованием кода Java в Windows мне нужно скачать несколько файлов из каталога, размещенного на сервере. эти файлы на сервере генерируются отдельно. поэтому я не буду знать названия этих файлов. Есть ли способ загрузить его с помощью JAVA и сохранить его в определенной папке.

Я использую Apache Tomcat.

Я прочитал все другие темы, связанные с загрузкой Java-файла. Но ни один из них не удовлетворяет моему требованию.

Ответы [ 6 ]

8 голосов
/ 17 марта 2011
  try {
        // Get the directory and iterate them to get file by file...
        File file = new File(fileName);

        if (!file.exists()) {
            context.addMessage(new ErrorMessage("msg.file.notdownloaded"));
            context.setForwardName("failure");
        } else {
            response.setContentType("APPLICATION/DOWNLOAD");
            response.setHeader("Content-Disposition", "attachment"+ 
                                     "filename=" + file.getName());
            stream = new FileInputStream(file);
            response.setContentLength(stream.available());
            OutputStream os = response.getOutputStream();      
            os.close();
            response.flushBuffer();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

Надеюсь, у вас есть идея ...

2 голосов
/ 06 сентября 2012

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

    URL oracle = new URL("http://www.example.com/file/download?");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();

Пожалуйста, обратитесь к openStream в этом [URL]: http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html

2 голосов
/ 17 марта 2011

Это возможно, только если сервер перечисляет содержимое каталога.если это так, вы можете сделать HTTP-запрос к:

http://server:port/folder

, который даст вам список файлов.

Как только вы это сделаете, вы можете скачатьфайлы путем разбора выходных данных, если это HTTP-запрос.

2 голосов
/ 17 марта 2011

Используйте java.net.URL и java.net.URLConnection классы.

2 голосов
/ 17 марта 2011

Вы можете использовать HttpURLConnection для загрузки файла по HTTP, HTTPS

1 голос
/ 13 апреля 2012

Если это сервер, то процесс должен походить на использование учетных данных FTP, которые вы должны загрузить файлы. Этот пример загрузки java-файла может вам помочь.

...