Warm tip: This article is reproduced from serverfault.com, please click

java-从上传的文件中获取文件扩展名

(java - Get file extension from uploaded file)

发布于 2014-05-27 08:55:57

在这里,我的要求是上传文件并将其存储在磁盘中。我将它存储在磁盘中没有问题,但是得到了文件的扩展名。问题是当我单击上传并处理要存储在磁盘中的文件时,它被保存为具有以下名称的临时文件

“ / 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();

提取文件扩展名的任何帮助都受到高度赞赏。

谢谢,

Questioner
svjn
Viewed
11
svjn 2014-05-27 21:54:57

我已经找到了解决方案。实际上,这是Play框架。我使用以下代码获取了文件。

MultipartFormData body = request().body().asMultipartFormData();
FilePart fileInput = body.getFile("fileInput");
File file = fileInput.getFile();

我想使用此File对象(用于存储在tmp位置)获取文件名但是我没有注意到FilePart对象包含所有已上传的文件详细信息。然后我想通了。

fileInput.getFilename()给我上载带有扩展名的文件名。它解决了我的问题。

感谢大灾变帮助我。他给出的答案肯定是其他框架(例如Struts / Spring或核心servlet)的最佳答案。