在这里,我的要求是上传文件并将其存储在磁盘中。我将它存储在磁盘中没有问题,但是得到了文件的扩展名。问题是当我单击上传并处理要存储在磁盘中的文件时,它被保存为具有以下名称的临时文件
“ / tmp / multipartBody6238081076014199817asTemporaryFile”
这里文件没有扩展名。因此,以下任何库都无法帮助我获取文件的扩展名。
FileNameUtils.getExtension()
or
Files.getFileExtension(path)
我什至想通过它的属性来获取它,但是它没有获取文件扩展名的选项。
Path path = Paths.get("/**/**/filepath");
BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
HTML代码:
<input type="file" name="fileInput" class="filestyle" data-classIcon="icon-plus" data-classButton="btn btn-primary" >
从Play框架获取文件对象:
MultipartFormData body = request().body().asMultipartFormData();
FilePart fileInput = body.getFile("fileInput");
File file = fileInput.getFile();
提取文件扩展名的任何帮助都受到高度赞赏。
谢谢,
我已经找到了解决方案。实际上,这是Play框架。我使用以下代码获取了文件。
MultipartFormData body = request().body().asMultipartFormData();
FilePart fileInput = body.getFile("fileInput");
File file = fileInput.getFile();
我想使用此File对象(用于存储在tmp位置)获取文件名。但是我没有注意到FilePart对象包含所有已上传的文件详细信息。然后我想通了。
fileInput.getFilename()
给我上载带有扩展名的文件名。它解决了我的问题。
感谢大灾变帮助我。他给出的答案肯定是其他框架(例如Struts / Spring或核心servlet)的最佳答案。