显示存储在浏览器目录中的图像

时间:2014-03-24 18:18:58

标签: php image image-processing odbc

这似乎是一件很简单的事情,但由于某些原因,我无法让它发挥作用。

我有一个存储车辆数据的数据库。 (二手车(我正在开发汽车经销商网站))。

我成功地显示了没有图像的数据库结果。

每条记录的图像都不存储在数据库中,而是将它们转储到目录中的服务器上,这些图像仅在数据库中引用。

如果我回显图像名称,它可以正常工作,如果我回显实际图像,如果你查看图像信息,路径是正确的。但在信息中它表明图像是文本。我不知道如何改变它。

请查看下面的一些代码。

    <?php

        $dbName = "F:/Domains/autodeal/autodeal.co.za/wwwroot/newsite/db/savvyautoweb.mdb";

        // Throws an error if the database cannot be found
        if (!file_exists($dbName)) {
            die("Could not find database file.");
        }

        // Connects to the database
        // Assumes there is no username or password
        $conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", '', '');

        //this is selecting individual records
        $selected_id = intval($_GET['Id']);

        //this is the query
        $sql = "SELECT Id, Make, Model, Year, Price, SpecialPrice, Branch, StockNO, MainPic FROM Vehicle WHERE Id = $selected_id";

        // Runs the query above in the table
        $rs = odbc_exec($conn, $sql);

        $id = odbc_result($rs, Id);
        $make = odbc_result($rs, Make);
        $model = odbc_result($rs, Model);
        $mainPic = odbc_result($rs, MainPic);

        //this is a failsafe for when there are no images for a specific record
        $no_image = "<a href='db/Nopic.gif' data-lightbox='nopic' title='No Image Available'><img src='db/Nopic.gif' /></a>";

        //This successfully displays the name of the image referenced in the database
        $main_pic = "<img src='db/vehicleImages/'" .$mainPic. "/>";

        //this is supposed to display the actual
        echo $main_pic . "<br />";

        echo $no_image;


        odbc_free_result($rs);
        odbc_close($conn);

        // This message is displayed if the query has an error in it
        if (!$rs) {
            exit("There is an error in the SQL!");
        }

    ?>

非常感谢任何有关方面的帮助。

谢谢。 :)

2 个答案:

答案 0 :(得分:0)

你应该在html对象的属性周围使用引号(看起来你可能通过你的方法破坏了东西):

你的:

<a href=db/Nopic.gif data-lightbox=nopic title=No Image Available><img src=db/Nopic.gif /></a>

正确的:

<a href='db/Nopic.gif' data-lightbox='nopic' title='No Image Available'><img src='db/Nopic.gif' /></a>

这是否能解决您的问题取决于您的回复:p

答案 1 :(得分:0)

用户在图像路径前面的正斜杠。这样,您可以确保图像路径始终从根文件夹开始。图像路径相对于执行的php脚本的位置。

例如,如果您的script.php文件位于文件夹/root/some_folder/script.php中并且您使用图像路径db/vehicleImages/image.jpg,则脚本将从同一文件夹中开始路径,从而导致这样的路径/root/some_folder/db/vehicleImages/image.jpg

如果您在路径前面使用正斜杠(例如/db/vehicleImages/image.jpg),它会告诉脚本从根文件夹开始,如/root/db/vehicleImages/image.jpg。 我认为这是你的脚本的情况 - 你给它错误的路径导致找不到文件。