您好我正在尝试将上传的文件保存到我项目中的文件夹中,但我不确定如何提供路径。我还希望上传文件的名称与文件夹中存储的文件名相同。
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);
}
}
答案 0 :(得分:0)
这样做最好的选择是创建一个具有来自服务器Root的绝对路径的文件夹。这意味着C:如果您使用的是Windows,或者/如果您使用的是Linux。例如,在Linux服务器中,您可以这样做:
OutputStream output = new FileOutputStream(new File("/var/my_app/uploads/" + filename + "/" + filename + ".xsd"));