【问题标题】:Sending an img tag in HTML through Java Web Server通过 Java Web Server 以 HTML 格式发送 img 标签
【发布时间】:2018-01-10 16:38:20
【问题描述】:

我创建了一个 Java Web 服务器,并尝试发送带有 HTML img 标记的图像。这是部分代码:

try {
    socket = server.accept();
    System.out.println(socket.getRemoteSocketAddress() + " has connected");

    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    out.write("HTTP/1.1 200 OK\r\n");
    out.write("Content-type: text/html\r\n");
    out.write("\r\n");
    //problem starts
    out.write("<img src=\"file:///Users/Reno/Desktop/MyServer/html/images/GG9/fbicon.jpg\" alt=\"Facebook Icon\">");

    out.close();
    socket.close();


} catch(Exception e) {
    System.out.println(e);
    e.printStackTrace();
}

我已经在 img 标签的 src 标签中输入了图像文件的路径。连接工作正常,但图像不显示,而是显示替代文本。在我添加替代文本之前,连接到服务器时,客户端浏览器上只有一个空白页面。

我还尝试将 src 路径更改为"html/images/GG9/fbicon.jpg",而是出现了蓝色框中的问号。然后我再次更改为不存在的 src 路径,例如"fakepath",并且还会出现一个问号。这意味着服务器或客户端必须使用以"file:///" 开头的当前 src 路径读取某些内容。

我该如何解决这个问题,请显示正确的代码。

【问题讨论】:

  • 您的浏览器可能不允许混合协议(即您的页面通过 HTTP 提供,而您的图像通过文件协议提供)。如果是这样,那将是一个严重的安全问题。
  • 我认为您之前的帖子中提出的 cmets 仍然适用

标签: java html image server webserver


【解决方案1】:

在创建&lt;Image/&gt; 元素时,我在使用流星时遇到了类似的问题。以下是两种可能的解决方案:

  • 确保您要导入的图像文件位于项目中可用的公共文件中。换句话说,请确保您有权访问您为其创建的文件夹中的图像,如果您没有,您可能会或可能不会在加载时看到错误消息

  • 优先使用相对路径,例如:./mypictures/Image.jpg,而不是绝对路径,例如 project/mypictures/Image.jpg。如果出于安全原因,参考路径是绝对路径,某些浏览器(如 Google Chrome)会阻止在客户端上传图像。同样,您可能并不总是因此而生成错误消息,尽管您应该在浏览器中看到类似于 acess not allowed

  • 的内容

希望这有帮助! D.

【讨论】:

  • 我正在使用 Safari。图像也位于此处:MyServer/html/images/GG9/fbicon.jpg 而程序位于MyServer/test/test.java
  • 这种情况下工作目录是test文件夹还是MyServer文件夹?
  • 在这种情况下,您的工作目录是 MyServer。因此,您要确保公开的文件是 html 文件。但是,您已经可以尝试快速测试以确保问题不是来自其他地方。尝试用图像的 url 标签替换 src 文件路径(从互联网上获取图像并将其 url 复制粘贴到 src 属性中)。图像应该正常加载,因此问题应该来自文件路径(例如检查扩展名是 .jpg 而不是 .jpeg)或文件的可访问性
  • 不客气!如果这回答了您的问题,请确保将其标记为答案,以便其他人在搜索类似问题时可以看到此问题已回答 =)
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 2019-01-03
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多