如何使用外部php文件在xampp中查看图像?

时间:2016-08-05 14:29:26

标签: php xampp

所以我从Web服务器上获取一个Web项目并在XAMPP中使用它。在原始代码中,用户选择要上载的文件。在提交时,文件被移动到公共html文件夹之外的上传文件夹,然后使用文件名更新数据库。然后我使用select语句从数据库中获取文件名。然后我使用php include文件在img标签中查看数据库中的文件名。

我在项目文件夹中创建了一个上传文件夹来存储图像(好像它是Web服务器中的上传文件夹),并分别更改了文件路径。

所以我的问题是图像没有显示,其他一切都工作,直到我到达读取图像的图像文件,我不知道为什么。我试图回显$ image变量来查看路径,它也没有显示。所以我认为它的图像文件本身但不能确定。不知道从哪里开始。

请仔细阅读。

文件结构:

projectfolder

- 包括

-pagelets

-upload

pagelet代码:

<?php
//Upload Image
if (isset($_POST['uploadImg'])) {
    if (is_uploaded_file($_FILES['image']['tmp_name'])) {
        if (move_uploaded_file($_FILES['image']['tmp_name'], "upload/{$_FILES['image']['name']}")) {
            echo "File Uploaded";
        }else{
            echo "File not uploaded";
            $i = '';
        }
        $i = $_FILES['image']['name'];
    }else{
        $i ='';
    }

    //Update database
    $query = "UPDATE Employees SET Photo = '$i' WHERE EmployeeID = {$_SESSION['EmpId']}";
    $result = @mysqli_query($dbc, $query);//Run the query
}
$query = "SELECT EmployeeID AS id, Photo AS photo, CONCAT(FirstName, ' ', LastName) AS name, PhoneNumber AS phone, Email AS email FROM Employees WHERE EmployeeID = '{$_SESSION['EmpId']}'";
$infoResult = @mysqli_query($dbc, $query);//Run the query
if($infoResult){
    while($row = mysqli_fetch_array($infoResult, MYSQLI_ASSOC)){
?>
<div id="profile-pic">
        <?php
            echo "<img src=\"includes/view-image.inc.php?file={$row['photo']}\" alt=\"{$row['photo']}\" />";
        ?>
        <form name="uploadForm" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?pagelet=Dashboard" method="post" enctype="multipart/form-data">
            <input type="file" name="image">

            <input type="submit" name="uploadImg" value="submit">
        </form>
    </div>
<?php
    }
}
?>

包含文件:

<?php
$path = "/upload/"; //directory outside public_html on the server
$file = ($_GET['file']);
$image = $path.$file;
header("Content-Type: image/jpg");
@readfile($image);
?> 

1 个答案:

答案 0 :(得分:2)

在上传文件时,如果文件可写,您可以在任何地方使用任何文件夹。因为上传过程是服务器端。但是,当您想要访问该文件以在Web上显示它时,您应该使用public_html中的路径。

因此,将upload文件夹移动到public_html文件夹中,并记录上传过程的路径。然后,您的代码运行良好。

例如,目录应该是这样的:

  

的public_html /

     

- 上传/