[英]JavaFX HTMLEditor - Inserting local Image with absolute path
我正在JavaFX中调整HTMLEditor,我的目标是在HTMLEditor中插入本地图像。 互联网上的图像没有问题并且可以正常工作,但是当我尝试插入具有绝对路径的本地图像时,它只显示了著名的“ X”,他没有找到它。
尝试了很多事情之后,以下代码显示了我当前的想法:
htmleditor.setHtmlText(
"<img src='file://C:/hi.png'/>");
这会导致以下html代码,这是我想的很好,我想要的结果是,但它不呈现图像...
<html dir="ltr"><head></head><body contenteditable="true">
<img src="file://C:/test.png"></body></html>
第二个想法)我还生成了一张图片,并将其保存在我的硬盘上,该文件称为带有绝对路径的文件,但这会导致与上述相同的问题(这里我期望路径是100%正确的...)。
File file = new File(TextArea_imagePath.getText() + ".png");
ImageIO.write(img, "png", file);
htmleditor.setHtmlText("<img src=' " + file.getAbsolutePath() + "'/>");
希望任何人都能帮助我,猜出它是一个愚蠢的错误。
ps: 在JavaFX HTMLeditor中设置本地图像无法帮助我,并且处理的图像没有路径
您的URI不正确。 在file:
part(方案)之后,您必须使用一个斜线或三个斜线。 您不能有两个斜杠。
以下是有效的:
<img src='file:/C:/hi.png'/>
<img src='file:///C:/hi.png'/>
以下是无效的:
<img src='file://C:/hi.png'/>
这样做的原因是,URI语法为遵循方案的两个斜杠赋予了特殊含义。 根据URI通用语法规范 :
这种“通用URI”语法由四个主要部分组成:
<scheme>://<authority><path>?<query>
因此,您可以完全省略// <authority>,也可以指定空的权限,如上面的前两个示例一样。
用两个斜杠表示后面的文本C:
是授权机构-即带有可选用户,密码和端口号的主机名。 显然C:
不是有效的主机名,即使是,也无法确定文件中主机名的确切含义:URI定义不正确。
您的第二个想法将无法正常使用。 文件名不会自动构成有效的URI。 您需要将其转换为URI:
htmleditor.setHtmlText("<img src=' " + file.toURI() + "'/>");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.