今天我正在寻求帮助。如果我犯了一些错误,这是我第一次提前抱歉 我正在尝试编写一个显示图像的小型Web应用程序。最初我使用blob格式将我的图像存储在数据库中,但是从这里研究人们建议使用文件系统。我的问题是我无法显示图像。它可能是一个非常小的错误,甚至是对文件位置的错误引用,但是我无法使它工作。 这是一个小项目,我希望能够改进并希望创建一种照片库。我在本地主机上运行此应用程序。
我遇到了从文件系统显示图像的问题。
// index.php
<form action="process.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Upload" />
</form>
然后,我的表单会进入处理请求的流程页面。
<?php
// process.php
// connect to the database
include 'connection.php';
// take in some file data
$filename =$_FILES['image']['name'];
// get the file extension
$extension = strtolower(substr($filename, strpos($filename, '.')+1));
// if the file name is set
if(isset($filename)){
// set save destination
$saved ='images/';
// rename file
$filename = time().rand().".".$extension;
$tmp_name=$_FILES['image']['tmp_name'];
// move image to the desired folder
if(move_uploaded_file($tmp_name, $saved.$filename)){
echo "Success!";
// if success insert location into database
$insert="INSERT INTO stored (folder_name,file_name) VALUES('$saved', '$filename')";
// if the query is correct
if($result=mysqli_query($con,$insert)){
echo "DONE";
echo"</br>";
// attempt to print image
echo "<img src=getimage.php?file_name=$filename>";
}
}
}
else{
echo "Please select a photo!!";
}
?>
现在你可以看到我有一个&lt; img&gt;标签。为了尝试和学习,我试图只显示最近上传的图像。为了尝试这样做,我创建了一个getimage文件。
<?php
//getimage.php
// set the page to display images
header("Content-Type: image/jpeg");
include "connection.php";
// get requested filename
$name = ($_GET['file_name']);
$query = "SELECT * FROM stored WHERE file_name=$name";
$image = mysqli_query($con,$query);
$row = mysqli_fetch_array($image,MYSQLI_ASSOC);
$img = $row['file_name'];
echo $img;
?>
我的数据库结构如下: 数据库名称= db_file 表名=存储。 columns = folder_name,file_name
同样,这只是一个小项目,所以我知道如果我想创建一个更大的更高效的应用程序,我将不得不改变数据库。
答案 0 :(得分:-1)
您似乎使用数据库查找来获取文件名,但您已经拥有文件名。尝试添加文件夹名称,创建有效路径。
更改
$img = $row['file_name'];
到
$img = $row['folder_name'] . '/' . $row['file_name'];
检查您的<img>
标记,看看是否存在正确的网址。您可能需要也可能不需要'/',这取决于您存储文件夹名称的方式。您可能需要添加域名。没有足够的信息知道需要什么。
您的<img>
应该是这样的
<img href="http://www.yourdomain.com/folder name/file name">
最后