/src/main/java/com/eastrobot/doc/config/BaseController.java

https://github.com/ekoz/kbase-doc · Java · 67 lines · 35 code · 9 blank · 23 comment · 0 complexity · 0dfb73f96b2dc95fd93147608c0f80e7 MD5 · raw file

  1. /*
  2. * Power by www.xiaoi.com
  3. */
  4. package com.eastrobot.doc.config;
  5. import java.io.File;
  6. import javax.servlet.ServletContext;
  7. import org.apache.commons.io.FilenameUtils;
  8. import org.artofsolving.jodconverter.OfficeDocumentConverter;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.http.MediaType;
  11. import lombok.extern.slf4j.Slf4j;
  12. /**
  13. * @author <a href="mailto:eko.z@outlook.com">eko.zhan</a>
  14. * @date 2018年9月2日 下午2:12:10
  15. * @version 1.0
  16. */
  17. @Slf4j
  18. public class BaseController {
  19. @Autowired
  20. protected ServletContext servletContext;
  21. /**
  22. * 转换文件
  23. * @author eko.zhan at 2018年9月2日 下午2:16:14
  24. * @param originFile
  25. * @param targetFile
  26. */
  27. protected void convert(File originFile, File targetFile) {
  28. WebappContext webappContext = WebappContext.get(servletContext);
  29. OfficeDocumentConverter converter = webappContext.getDocumentConverter();
  30. try {
  31. long startTime = System.currentTimeMillis();
  32. converter.convert(originFile, targetFile);
  33. long conversionTime = System.currentTimeMillis() - startTime;
  34. log.info(String.format("successful conversion: %s [%db] to %s in %dms", FilenameUtils.getExtension(originFile.getName()), originFile.length(), FilenameUtils.getExtension(targetFile.getName()), conversionTime));
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. log.error(String.format("failed conversion: %s [%db] to %s; %s; input file: %s", FilenameUtils.getExtension(originFile.getName()), originFile.length(), FilenameUtils.getExtension(targetFile.getName()), e, targetFile.getName()));
  38. }
  39. }
  40. /**
  41. * 根据指定的文件名称获取文件类型
  42. * @author eko.zhan at 2018年9月2日 下午3:12:57
  43. * @param filename
  44. * @return
  45. */
  46. protected MediaType getMediaType(String filename) {
  47. // application/pdf
  48. // application/xml
  49. // image/gif, ...
  50. String mineType = servletContext.getMimeType(filename);
  51. try {
  52. MediaType mediaType = MediaType.parseMediaType(mineType);
  53. return mediaType;
  54. } catch (Exception e) {
  55. return MediaType.APPLICATION_OCTET_STREAM;
  56. }
  57. }
  58. }