繁体   English   中英

JavaFX HTMLEditor-使用绝对路径插入本地图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM