为什么我不能这样做<img src =“C:/localfile.jpg”>?

如果html文件是本地的(在我的C驱动器上),但是如果html文件在服务器上,并且图像文件是本地的,那么它是有效的。 这是为什么?

任何可能的解决方法?

如果客户端可以请求本地文件系统文件,然后使用JavaScript来确定其中的内容,那么这将是一个安全漏洞。

唯一的解决办法就是在浏览器中build立一个扩展。 Firefox扩展和IE扩展可以访问本地资源。 Chrome是更严格的。

除非您正在访问本地HTML页面,否则浏览器不允许访问本地文件系统。 你必须在某处上传图片。 如果它与html文件位于同一目录中,则可以使用<img src="localfile.jpg"/>

不应该使用“file:// C:/localfile.jpg”而不是“C:/localfile.jpg”?

C:不是一个公认的URIscheme。 试试file://c|/...代替。

IE 9:如果你希望用户在将图像发布到服务器之前先看看图像:用户应该将该网站添加到“受信任的网站列表”。

Newtang关于安全规则的观察不谈,你怎么知道任何查看你的页面的人都会在c:\localfile.jpg看到正确的图像? 你不能。 即使你认为你可以,你也做不到。 首先,它预设了一个Windows环境。

我看到你正在尝试做的两种可能性:

  1. 你希望你的网页,在服务器上运行,find你原来devise的计算机上的文件?

  2. 你希望它从在页面上查看的电脑中获取?

选项1只是没有意义:)

选项2将是一个安全漏洞,浏览器会禁止网页(通过网站提供)在浏览器的机器上加载内容。

凯尔·哈德森(Kyle Hudson)告诉你你需要做什么,但是这很基础,我很难相信这是你想要做的。

如果您使用Google Chrome浏览器,则可以像这样使用

 <img src="E://bulbpro/pic_bulboff.gif" width="150px" height="200px"> 

但是,如果您使用Mozila Firefox,则需要添加“file”ex。

 <img src="file:E://bulbpro/pic_bulboff.gif" width="150px" height="200px"> 

老实说,最简单的方法是将文件托pipe添加到服务器。

  • 打开IIS

  • 在默认网站下添加一个虚拟目录

    • 虚拟path将是你想在浏览器中浏览的内容。 所以如果你select“ serverName / images,你可以通过转到http:// serverName / images来浏览它
    • 然后在C:驱动器上添加物理path
  • 将适当的权限添加到“NETWORK SERVICE”和“IIS AppPool \ DefaultAppPool”C:驱动器上的文件夹

  • 刷新默认网站

  • 你完成了。 您现在可以浏览到该文件夹​​中的任何图像浏览到http://yourServerName/whateverYourFolderNameIs/yourImage.jpg并在您的img src中使用该url

希望这有助于某人

您还需要上传图片,然后链接到服务器上的图像。

让图像成为用户select的东西呢? 使用input:文件标记,然后select图像后,在客户端网页上显示它? 这对大多数事情是可行的。 现在我正试图让它为IE工作,但是与所有的微软产品一样,它是一个集群fork()。

嗯,只是觉得…有数以十亿计算机有C:\驱动器,所以你如何期望在服务器上的HTML知道你的本地C:\ localfile.jpg? 一切都必须在服务器上。

将您的图像文件移动到服务器。 您需要将标记重命名为<img src =“localfile.jpg”>请务必将其放在文档所在的同一目录中,但我build议您添加“images”目录并将图像放在images目录中,并写入这个:<img src =“images / localfile.jpg”>在你的文件上。