Как сохранить файл на HTTP-сервере с помощью JSF? - PullRequest
0 голосов
/ 11 марта 2011
String urlPath = "http://hostname:portno/filepath.pdf";
            url = new URL(urlPath);
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setRequestProperty("Content-Type", "application/octet-stream");
            OutputStream outStream = conn.getOutputStream();
            out = new BufferedOutputStream(outStream);
            if (byteContent != null && byteContent.length > 0) {
                out.write(byteContent);
                byteLength = byteContent.length;
            }

этот код не дает никаких исключений, но файл не создан в моей папке tomcat

Ответы [ 2 ]

0 голосов
/ 11 марта 2011

apache commons-fileupload

  FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = upload.parseRequest(request);
    Iterator<FileItem> iterator = items.iterator();
    while(iterator.hasNext()) {
        FileItem item = iterator.next();
        if(!item.isFormField()) {
            File uploadedFile = new File("fullPathToFile");
            System.out.println(uploadedFile.getAbsolutePath());
            item.write(uploadedFile);                                        
        }
    }
0 голосов
/ 11 марта 2011

Это не способ записи файлов в Tomcat. Вы делаете HTTP-запрос, который отправляет байты на сервер.

Вы должны создать FileOutputStream(..) и записать туда байты. Это в случае, если ваш код работает в Tomcat.

Если ваш код представляет собой отдельное приложение, вам необходимо создать сервлет, который может обрабатывать входящий запрос и сохранять файл. Нет прямого способа просто отправить файлы на сервер (и к лучшему - иначе все будут загружать файлы)

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