直接上代码:
解析文档的依赖:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
Controller代码:
/**
* 上传文件
*/
@SaIgnore
@PostMapping("/upload")
@ResponseBody
public SysFileDetailsBo addSave(@RequestParam("file") MultipartFile file, SysFileDetailsBo details) throws IOException {
//TODO: 返回的URL:去除profile: C:/uploadPath之后的路径,在nginx里面的nginx.conf文件中配置的路径也是这样配置
// 系统上传文件路径
String filePath = FileConfig.getUploadPath();
String originalFilename = file.getOriginalFilename();
// 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file);
details.setFilePath(fileName);
details.setFileName(originalFilename);
//这里我需要发布到Windows服务器上拼接可供前端实现浏览器在线浏览的URL返回
details.setFilePath("http://xxx.xxx.xx.xx:80/upload/" + fileName);
//加载PDF文档
File pdfFile = new File(filePath + "/" + fileName);
PDDocument document = PDDocument.load(pdfFile);
// 创建PDFTextStripper对象来提取文本
PDFTextStripper pdfTextStripper = new PDFTextStripper();
String text = pdfTextStripper.getText(document);
details.setFileDetails(text);
document.close();
//这里是把文档内容、文档名称、URL插入到数据库的方法;因为我前端需要我的URL所以给他返回过去所以就注掉了
//return toAjax(sysFileDetailsService.insertByBo(details));
return details;
}
File Config工具类:
public class FileConfig {
/** 项目名称 */
private static String name;
/** 版本 */
private static String version;
/** 版权年份 */
private static String copyrightYear;
/** 实例演示开关 */
private static boolean demoEnabled;
/** 上传路径 */
@Value(注入你自己在配置文件的路径)
private static String profile;
/** 获取地址开关 */
private static boolean addressEnabled;
public static String getName()
{
return name;
}
public void setName(String name)
{
FileConfig.name = name;
}
public static String getVersion()
{
return version;
}
public void setVersion(String version)
{
FileConfig.version = version;
}
public static String getCopyrightYear()
{
return copyrightYear;
}
public void setCopyrightYear(String copyrightYear)
{
FileConfig.copyrightYear = copyrightYear;
}
public static boolean isDemoEnabled()
{
return demoEnabled;
}
public void setDemoEnabled(boolean demoEnabled)
{
FileConfig.demoEnabled = demoEnabled;
}
public static String getProfile()
{
return profile;
}
public void setProfile(String profile)
{
FileConfig.profile = profile;
}
public static boolean isAddressEnabled()
{
return addressEnabled;
}
public void setAddressEnabled(boolean addressEnabled)
{
FileConfig.addressEnabled = addressEnabled;
}
/**
* 获取导入上传路径
*/
public static String getImportPath()
{
return getProfile() + "/import";
}
/**
* 获取头像上传路径
*/
public static String getAvatarPath()
{
return getProfile() + "/avatar";
}
/**
* 获取下载路径
*/
public static String getDownloadPath()
{
return getProfile() + "/download/";
}
/**
* 获取上传路径
*/
public static String getUploadPath()
{
return getProfile() + "/upload";
}
}
这里结束了,希望大家给留一个赞,感谢大家