Helenr
2019-07-03 17:10:38
如何在JSF中保存上傳的文件我正在JSF中上傳一個文件。我用的是戰斧<t:inputFileUpload>對于這一點,但同樣的問題適用于例如PrimeFaces<p:fileUpload>和JSF 2.2<h:inputFile>.我有以下支持bean代碼:private UploadedFile uploadedFile; // +getter+setterpublic String save() throws IOException {
String name = uploadedFile.getName();
System.out.println("File name: " + name);
String type = uploadedFile.getContentType();
System.out.println("File type: " + type);
long size = uploadedFile.getSize();
System.out.println("File size: " + size);
InputStream stream = uploadedFile.getInputStream();
byte[] buffer = new byte[(int) size];
stream.read(buffer, 0, (int) size);
stream.close(); }我能夠獲得文件名、類型和大小,但無法將該文件保存在特定路徑上。我想不出保存上傳文件的正確方法。我怎樣才能做到這一點?
3 回答

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
getInputStream()
InputStream input = uploadedFile.getInputStream();
/path/to/uploads
getRealPath()
Files#createTempFile()
Path folder = Paths.get("/path/to/uploads");String filename = FilenameUtils.getBaseName(uploadedFile.getName()); String extension = FilenameUtils.getExtension(uploadedFile.getName()); Path file = Files.createTempFile(folder, filename + "-", "." + extension);
FilenameUtils
try (InputStream input = uploadedFile.getInputStream()) { Files.copy(input, file, StandardCopyOption.REPLACE_EXISTING);}System.out.println("Uploaded file successfully saved in " + file);
/path/to/uploads
添加回答
舉報
0/150
提交
取消