因此,我从web服务器获取一个web项目,并在XAMPP中使用它。在原始代码中,用户选择要上载的文件。在提交文件时,将文件移动到公共html文件夹之外的上载文件夹,然后用文件名更新数据库。然后使用select语句从数据库中获取文件名。然后,我使用php包含文件来查看img标记中的图像,其中包含数据库中的文件名。
我在项目文件夹中创建了一个上传文件夹来存储图像(就像web服务器中的上传文件夹一样),并分别更改了文件路径。
所以我的问题是,图像没有显示,其他一切都正常,直到我找到读取图像的图像文件,我不知道为什么。我尝试回显$image变量以查看路径,但它也没有显示。因此,我认为这是图像文件本身,但不能确定。不知道从这里往哪里走。
请仔细阅读。
档案结构:
项目文件夹
-includes
-pagelets
-upload
页码:
<?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);
?>
发布于 2016-08-05 06:36:30
在上传文件时,如果文件是可写的,则可以在任何地方处理任何文件夹。因为上传过程是服务器端的。但是,当您想要访问文件以在web上显示它时,您应该使用public_html内部的路径。
因此,将上传文件夹移动到public_html文件夹中,并记录上传过程的路径。那么,您的代码运行良好。
例如,目录应该如下所示:
public_html/ -上载/
https://stackoverflow.com/questions/38791712
复制相似问题