Вывод изображения

Leva123

Есть файл с двумя функциями с проверкой и загрузкой изображения.
function.php

<?php

function can_upload($picture)
{
if($picture[‘name’] == »){
return ‘Вы не выбрали файл’;

}
return true;
}

function make_upload($picture)
{

$name = mt_rand(0, 10000) . $picture[‘name’];
move_uploaded_file($picture[‘tmp_name’], ‘image/’ . $name);
}

?>
файл addscore.php добавляет изображение в БД и в папку image.

<?
include_once(‘function.php’);
?>
<!DOCTYPEhtml>
<htmllang=»en»>
<head>
<metacharset=»UTF-8″>
<metahttp-equiv=»X-UA-Compatible»content=»IE=edge»>
<metaname=»viewport»content=»width=device-width, initial-scale=1.0″>
<title>Document</title>
</head>
<body>
<h2>Добавление изображения!</h2>
<formmethod=»POST»enctype=»multipart/form-data»>
<inputtype=»file»name=»picture» /><br />
<inputtype=»submit»name=»submit»value=»Add» /><br />
</form>
<ahref=»index.php»>Главная страница</a>
<?php

require_once(‘db.php’);

if(isset($_POST[‘submit’]))
{
$picture = $_FILES[‘picture’][‘name’];

$check = can_upload($_FILES[‘picture’]);

if($check === true)
{
make_upload($_FILES[‘picture’]);
echo ‘OK’;
}else{
echo «<strong>$check</strong>»;
}
if($check === true)
{
$query = «INSERTINTO products(picture) VALUES (‘$picture’)»;
mysqli_query($db, $query) or die(‘Error’);

}
}

?>
</body>
</html>
Затем я хочу вывести на экран файла index.php данные сохраненные картинки у меня не выходит.
Я кодил другим способом,все получалось но данным способом не выходит.
Файл index.php

<?
include_once(‘function.php’);
?>
<!DOCTYPEhtml>
<htmllang=»en»>
<head>
<metacharset=»UTF-8″>
<metahttp-equiv=»X-UA-Compatible»content=»IE=edge»>
<metaname=»viewport»content=»width=device-width, initial-scale=1.0″>
<title>Document</title>
</head>
<body>
<h2>Вывод на экран</h2>
<ahref=»addscore.php»>Загрузка изображений</a>
<hr>
<?php

require_once(‘db.php’);

$query = «SELECT*FROM products»;
$data = mysqli_query($db, $query);

while ($row = mysqli_fetch_array($data)){
echo ‘<img src=»‘.$row[‘picture’]%20.%20′» />’;

}

?>
</body>
</html>

Не чего не обычно, возможно запутался. Обьясните пожалуйста в чем может быть проблема. Заранее спасибо.

 

Drunkenmunky

А что содержит переменная $row[‘picture’]?

 

Leva123

Само изображение. Я так понимаю.

 

Drunkenmunky

Понимать не обязательно. Надо проверять.
Введите echo $row[‘picture’];

 

Leva123

Данная переменная содержит Имена каждого изображения сохраненного в БД. Но самого изображения не показывает.

 

Drunkenmunky

Приведите пример.

 

Leva123

 

Drunkenmunky

Хорошо, зайдем с другой стороны.
Вот эту часть кода

Код (Text):
  1. while ($row = mysqli_fetch_array($data)){
  2. echo ‘<img src=»‘.$row[‘picture’]%20.%20′» />’;
  3.  
  4. }

Замените на

Код (Text):
  1. echo ‘<xmp>’;
  2. while ($row = mysqli_fetch_array($data)){
  3. echo ‘<img src=»‘.$row[‘picture’]%20.%20′» />’;
  4.  
  5. }
  6. echo ‘</xmp>’;

И скопируйте выведенное сюда.
Можно даже как картинку.

 

miketomlin

Пример значений имелся в виду. Может, имена относительные или просто кривые.
— Добавлено —
P.S. Учитесь уже делать запросы к БД вне разметки.

 

Leva123

— Добавлено —

Имя данного изображения и формат.

 

Drunkenmunky

Хорошо.
Теперь откройте папку со скриптом из сообщения, и посмотрите есть где-то в ней файл beef.jpg

 

miketomlin

PHP:
  1. $name = mt_rand(0, 10000) . $picture[‘name’];
  2. move_uploaded_file($picture[‘tmp_name’], ‘image/’ . $name);

Адрес в БД нужно сохранять в соответствии с тем местом/именем, куда пихаете файлы. При этом ‘image/’ можно не пихать в БД, а также добавлять при формировании ссылки.

 

Leva123

Данный файл есть в папке image

 

Drunkenmunky

Бинго.
Она в той же папке, где и скрипт?

 

miketomlin

А image есть в ссылках? :)

 

Leva123

Бл*** парни я запутался =) Отвечаю. Уже просто голова не варит.

 

miketomlin

Иди спать.

 

Leva123

Не.Нужно решить данную задачу.

 

Drunkenmunky

Код (Text):
  1. while ($row = mysqli_fetch_array($data)){
  2. echo ‘<img src=»image/’.$row[‘picture’]%20.%20′» />’;
  3. }
 

Leva123

Спасибо тебе братец)Но я это сделал чуть раньше чем ты мне подсказал)Все таки дошло до меня)

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *