此处参考了一个博主的本地导出图片,具体的地址如下:
https://www.jianshu.com/p/956f56c2ddcf
@RestController
public class Controller {
/**
* @param photo 注意该photo参数为前台传过来图片
*/
@GetMapping("/exportWord")
public void exportWord(HttpServletResponse response){
ExportWordUtil ewUtil = new ExportWordUtil();
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title", "Test标题");
Base64.Encoder base64 = Base64.getEncoder();
try {
File file = new File("20200422fa7549e09fdd47cb2577e975f2d06eb4.jpg");
URL url = new URL("20200422fa7549e09fdd47cb2577e975f2d06eb4.jpg");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();// 通过输入流获取图片数据
/* BufferedImage bi= ImageIO.read(inStream);
Image im=(Image)bi;
bi.getWidth(null);*/
MultipartFile photo = new MockMultipartFile(file.getName(), inStream);
String abc =base64.encodeToString(photo.getBytes());
dataMap.put("photo", abc);
inStream.close();
} catch (Exception e){
}
List<User> userList = new ArrayList<>();
userList.add(new User("亚当·摩根","男"));
userList.add(new User("达奇","男"));
userList.add(new User("阿比盖尔·马斯顿","女"));
dataMap.put("list", userList);
ewUtil.exportWord(dataMap, "test.ftl", response, "test.doc");
}
这里面使用了URL 获取远程服务器图片的数据,并且转成流的形式