Сегодня я ищу помощь. Это мой первый раз, прошу заранее заранее, если я сделаю несколько ошибок, я пытаюсь закодировать небольшое веб-приложение, которое будет отображать изображения. Первоначально я использовал формат 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!!";
}
?>
Теперь, как вы видите, у меня есть тег <img>. Чтобы попытаться научиться, я пытался просто отобразить недавно загруженное изображение. Чтобы попытаться сделать это, я создал файл 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 = имя_папки, имя_файла
Опять же, это всего лишь небольшой проект, поэтому я знаю, что мне придется изменить базу данных, если я захочу создать более эффективное приложение.
Кажется, вы используете поиск базы данных, чтобы получить только имя файла, но у вас уже есть имя файла. Попробуйте добавить имя папки, создайте допустимый путь.
изменение
$img = $row['file_name'];
в
$img = $row['folder_name'] . '/' . $row['file_name'];
проверьте свой <img>
чтобы увидеть, присутствует ли правильный URL-адрес. Вы можете или не нуждаться в "/", это зависит от того, как вы сохранили имя папки. Возможно, вам потребуется добавить доменное имя. Просто недостаточно информации знать, что нужно.
Ваш <img>
должен выглядеть так:
<img href="http://www.yourdomain.com/folder name/file name">
в конце