@PostMapping("/fileToText")
@ApiOperationSupport(order = 0)
@ApiOperation(value = "读取上传的文件", notes = "传入file")
public R<String> fileToText(@ApiParam(value = "检测文件", required = true)@RequestParam(value="file", required=false)MultipartFile file) {
InputStream fis = null;
try {
String content = "";
if(!file.isEmpty()) {
if(file.getSize() > 20971520) {
return R.fail("上传的文件大小不能大于20MB,请精简后重试.");
}
fis = file.getInputStream();
String fileName = file.getOriginalFilename().trim().toLowerCase(Locale.ENGLISH);
if(fileName.endsWith(".doc")) {
@SuppressWarnings("resource")
WordExtractor extractor = new WordExtractor(fis);
content = extractor.getText();
} else if(fileName.endsWith(".docx")) {
XWPFDocument document = new XWPFDocument(fis);
@SuppressWarnings("resource")
XWPFWordExtractor extractor = new XWPFWordExtractor(document);
content = extractor.getText();
} else if(fileName.endsWith(".txt")) {
content = IOUtils.toString(fis, Charset.defaultCharset());
} else {
return R.fail("读取上传的文件失败:不支持的文件类型");
}
}
return R.data(content, "读取上传的文件成功");
}catch(Exception e) {
return R.fail("读取上传的文件失败:"+e.getMessage());
}finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}