HTML图像和'file://'指定src的异常问题

时间:2011-10-16 04:33:02

标签: html image

我正在使用'file:///some_dir/image.jpg'src路径在页面上加载图像。我可以使用此路径在常规选项卡中访问该图像。此外,将页面保存为HTML并使用此路径的图像工作。但是,图像不会加载到实时页面上。在chrome中它显示了alt文本的一部分,在firefox中它显示了一个窄条。我试过改变宽度和高度但无济于事。有什么我想念的吗?

<img title="Click to enlarge" src="file:///Users/Aram/uploads/profile.image.985b0f707d972bf3.4372696242656464696e67616e645465657468696e67437269625261696c436f7665722e6a7067.jpg" class="profile-image">

修改

我注意到我在控制台中收到了这个:

  

不允许加载本地资源

有什么方法吗?

编辑2:

由于我无法通过http路径访问图像,因此我决定将其作为base64数据读取。对于使用web2py或其他Python框架的任何其他人:

# Load the image data
import os
path = os.path.join(request.folder, 'uploads', filename)
data_uri = open(path, 'rb').read().encode('base64').replace('\n', '')
data = 'data:image/png;base64,%s' % data_uri
return html.IMG( _src=data, _class='profile-image', _title='Click to enlarge' )

2 个答案:

答案 0 :(得分:4)

不允许网站在用户的计算机上使用本地文件。使用html文件目录中的相对路径。

您还可以直接编码和嵌入图像:

如何嵌入已编码的内容:http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html Python编码说明:http://www.daniweb.com/software-development/python/code/216635

答案 1 :(得分:2)

问题是您正在尝试直接从客户端计算机加载文件。浏览器阻止了这一点。

您可以在此处阅读详细信息:

http://en.wikipedia.org/wiki/Same_origin_policy

它被称为原始政策。它可以防止恶意站点直接从客户端计算机上加载文件。尝试使用页面中的相对路径来显示图像。

在某些情况下(很少见)我使用轻型网络服务器来托管网站,以便我可以从服务器加载文件(而不是让它从浏览器看到的内容,作为客户端计算机)