我有一个mysql数据库,用于存储网络驱动器上某些图像的路径。
我认为使用Ajax,我将能够动态生成图像标签,以便在浏览器中显示这些图像,因为每个图像标签都会使用相对于浏览器的路径来提取新的GET请求。
Web服务器有一个小型硬盘,我不想复制所有内容 - 因此无法在服务器上存储大量图像。
我的PHP似乎正确生成了图像标签,但broswer没有显示图像。
PHP代码:
$sql = "SELECT ID,Link FROM tblStorePictures WHERE StoreNumber = $sto";
$result = mysql_query($sql,$dblink) or die(mysql_error());
$row = mysql_fetch_array($result);
$id = $row['ID'];
echo "<img src='file://".$row['Link']."' alt='Image' id=$id>";
图像标签(在firebug中查看)最终看起来像这样:
<img id="57" alt="Image" src="file://x:/Image1.jpg">
我尝试过各种各样的东西,但没有任何作用:
使用document.createElement(“img”)方法使用javascript动态生成图像标记,并为源等设置属性。
使用javascript设置innerHTML。
在所有情况下,我都有正确生成的标签,但我仍然没有在浏览器中看到任何内容,只有alt文本。
欢迎任何建议。
答案 0 :(得分:1)
您所面对的是浏览器的安全功能。实际上,您的浏览器不会关注指向本地网页的链接(这意味着file://
网址),因为您正在查看的网页不是本地网页(您不在file://.../.../page.html
)。因此,浏览器会看到网络上的某个网站试图访问您硬盘上的文件,并且由于显而易见的原因拒绝访问该文件。
答案 1 :(得分:0)
这不是AJAX的问题,而是文件链接的问题。我几乎可以保证你的链接在某种程度上是错误的。如果您在浏览器的url字段中输入文件“file:// x:/Image1.jpg”的确切链接,并且没有显示任何内容,则表明您的文件链接存在问题。