【问题标题】:Absolute path in IMG SRC does not display imageIMG SRC 中的绝对路径不显示图像
【发布时间】:2014-06-23 14:01:09
【问题描述】:

我正在使用我自己的运行 Windows Server 2008 和 IIS v7.5 的服务器。操作系统与网站一起位于 c: 驱动器上。我有许多带有相关文本文件的照片和视频,它们目前也在 c: 驱动器上(参见下面的简化结构),我希望将它们移动到同一服务器上更大的 d: 驱动器上。

操作系统(C:)
- inetpub
--- wwwroot
----- 专辑
-------- index.html
-------- xxx.php
-------- 等
------- 信息
---------- textfile1.txt
---------- textfile2.txt
---------- 等
------- 照片
---------- photo1.jpg
---------- photo2.jpg
---------- 等

我目前使用 PHP 中的“for”循环输出文本文件和照片,简化如下:

包括'info/textfile1.txt';
img src = 'photos/photo1.jpg' alt = "photo1.jpg" width="200px"

两者都有效。

在将文件移动到 d: 驱动器之前,我已将这些文件扩展为绝对路径名:

包括 'C:/inetpub/wwwroot/albums/info/textfile1.txt';
哪个有效,并且

img src = 'C:/inetpub/wwwroot/albums/photos/photo1.jpg' alt = "photo1.jpg" width="200px"

这不起作用(只显示'alt'文本)。

绝对清楚,所有这些文件都在服务器上。

所以,
1. 为什么带有完整路径名的 img src 不能工作,我该如何让它工作?
2. 这种方法是否存在任何安全(或其他)风险?

【问题讨论】:

    标签: php html image src absolute-path


    【解决方案1】:

    它永远不会起作用
    “img src”在客户端浏览器中工作,它无法访问服务器的目录结构和 c:/inetpub/wwwroot 目录下的文件。
    “img src”中的绝对路径只能是“http://domain.com/folder/file.ext”,像这样

    【讨论】:

    • 非常感谢@Oleg Dubas,我现在明白了,使用你的例子就可以了。我现在真正的问题是我想显示我较大的 d: 驱动器中的照片,我想我无法使用“domain.com/folder/file.ext”格式引用它,因为它指向 c: 驱动器上 wwwroot 文件夹下的文件夹。假设有可能,我该怎么做?
    • 这是不可能的 :) 唯一的方法是编写一个服务器脚本,该脚本将从驱动器 D 物理读取文件:(该脚本可以访问)并将其扔给浏览器输出。这是一个非常简单的脚本,例如:
    • 太棒了!非常感谢@Oleg Dubas,我现在使用 img src='load-image.php?$image.jpg' 类型结构和文件存在检查; header('Content-Type: image/jpeg'); readfile('D:/photo.jpg');等在 load-image.php 文件中,它工作得很好。
    • 我的下一个挑战是对我的视频文件做同样的事情,希望使用相同或相似的技术(?)......但那是另一天。 (我之前的评论中有一个错误类型 - 我的意思是 img src='load-image.php?image=$photo' 但我相信你知道这一点)。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多