如何将上传的文件保存到名称为的文件夹中

时间:2015-11-09 23:53:42

标签: java primefaces apache-commons

您好我正在尝试将上传的文件保存到我项目中的文件夹中,但我不确定如何提供路径。我还希望上传文件的名称与文件夹中存储的文件名相同。

  public void handleFileUpload(FileUploadEvent event) throws IOException {
        LOG.info("Entered into save action event");
        FacesMessage message = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, message);
        String filename = event.getFile().getFileName();
        UploadedFile file = event.getFile();
        InputStream input = file.getInputstream();
        OutputStream output = new FileOutputStream(new File("src/main/resources/uploads/schema.xsd", filename));
        try {
            IOUtils.copy(input, output);
        } catch (IOException e){
            LOG.error("Error in copying file.", e);
        }
        finally {
            IOUtils.closeQuietly(input);
            IOUtils.closeQuietly(output);
        }
    }

1 个答案:

答案 0 :(得分:0)

这样做最好的选择是创建一个具有来自服务器Root的绝对路径的文件夹。这意味着C:如果您使用的是Windows,或者/如果您使用的是Linux。例如,在Linux服务器中,您可以这样做:

OutputStream output = new FileOutputStream(new File("/var/my_app/uploads/" + filename + "/" + filename + ".xsd"));