背景:
在写java群发邮件Demo过程中,插入图片或附件时,遇到报错 :java.io.FileNotFoundException: (系统找不到指定的路径。),问题出在相对路径和绝对路径的不熟悉。
原因:FileDataSource在新建对象时是从磁盘读取文件,所以必须要用绝对路径,和Java的new File()同理;
解决办法:实际生产环境,打好的包里的路径是相对的,绝对路径要动态的,需用代码读出绝对路径。
String photoSource = "files/products.jpg"; //Resouces下files文件夹里的products.jpg文件 Resource resource = new ClassPathResource(photoSource);//获的取相对路径,Resource为多态写法 String path = resource.getFile().getPath(); //获取实际生产情况下动态的绝对路径path ..... .....//此处省略邮箱部分的内容 ..... DataHandler dh = new DataHandler(new FileDataSource(path)); // 读取path绝对路径



