Доброе время суток.
У меня есть вопросик у Профессионалов.
Нашел на просторах интернета несколько скриптов для загрузки изображения на сервер :
1- просто загружает файл на сервер
2- загружает файл изображения в БД в поле BLOB
Со вторым способом вроде бы разобрался, только не как не могу сделать так что бы id загруженной картинки вставлялся в поле анкеты для заполнения ее.
А с первым способом ни как не могу разобраться как сделать так что бы параметры пути загруженной картинки вставлялись в БД и дальше можно было продолжать заполнять анкету.
Я знаю, что размещать файлы в БД нельзя и из-за этого Бд может медленно работать, но другого нормального рабочего варианта я пока что не смог найти....
Помогите пожалуйста.
2 способ
Загрузка изображения
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
include '../conf.php';
/* ненужная библиотека но можно и подключить
include 'opendb.php';*/
$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
/*include 'Closedb.php';*/
echo "<br>Файл $fileName Успешно загружен<br>";
}
?>
<p> </p>
<form method="post" action="ad_anketa.php" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
заполнение анкеты
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
<?PHP
include ('../conf.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="add_ankta.php">
<label>Введите Фамилию
<input type="text" name="fname" id="fname" />
</label>
<p>
<label>Имя
<input type="text" name="nname" id="nname" />
</label>
</p>
<p>
<label>Отчество
<input type="text" name="oname" id="oname" />
</label>
</p>
<p>
<label>Дата рожденья
<input name="Ddate" type="text" id="Ddate" value="1956-01-01" />
</label>
</p>
<p>
<label>Адрес
<input type="text" name="Street" id="Street" />
</label>
</p>
<p>
<label>Телефон
<input type="text" name="phone" id="phone" />
</label>
</p>
<p>
<label>Дата заказа
<input type="text" name="zdate" id="zdate" />
</label>
</p>
<p>
<label>Дата выдачи заказа
<input type="text" name="Vdate" id="Vdate" />
</label>
</p>
<p>
<label>Фото
<?php
if (isset($filename))
{
echo "<input type='text' name='photo' id='<?php echo $fileName?>' />";
}
else
{
echo "Вы не загрузили картинку";
}
?>
<!-- <input type="text" name="photo" id="<?php echo $fileName?>" />-->
</label>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Добавить" />
</label>
</p>
</form>
</body>
</html>
Запись данных из анкеты
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?PHP
include ('../conf.php');
if (isset ($_POST['fname'])) {$fname = $_POST['fname'];}
if (isset ($_POST['nname'])) {$nname = $_POST['nname'];}
if (isset ($_POST['oname'])) {$oname = $_POST['oname'];}
if (isset ($_POST['Ddate'])) {$Ddate = $_POST['Ddate'];}
if (isset ($_POST['Street'])) {$Street = $_POST['Street'];}
if (isset ($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset ($_POST['zdate'])) {$zdate = $_POST['zdate'];}
if (isset ($_POST['Vdate'])) {$Vdate = $_POST['Vdate'];}
?>
<?PHP
if (isset($fname) && isset($nname) && isset($oname) && isset($Ddate) && isset($Street) && isset($phone) && isset($zdate)&& isset($Vdate))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO user (fname,nname,oname,Ddate,Street,phone,zdate,Vdate) VALUES ('$fname', '$nname','$oname','$Ddate','$Street','$phone','$zdate','$Vdate')");
if ($result == 'true') {echo "<p>Ваш урок успешно добален!</p>";}
else {echo "<p>Ваш урок не добален!</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}
?>
Файл для отображения изображения из бД
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php
/*производит вывод изображения на сраницу adketa.php*/
(include 'conf.php');
if ( isset( $_GET['id'] ) ) {
// Здесь $id номер изображения
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `content` FROM `upload` WHERE `id`=".$id; // стала отображать картинки
//$query = "SELECT `img` FROM `user` WHERE `id`=".$id; //БЫЛО
// Выполняем запрос и получаем файл
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header('Content-type: image/jpeg');
// И передаем сам файл
echo $image['content'];
}
}
}
?>
<!--[оригинал]<img src="image.php?id=1" heigth=500 width=500 alt="" />-->
Отображение информации об пользователе
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
<?php
include ('conf.php');
if (isset ($_GET['id'])) {$id = $_GET['id'];}
$result = mysql_query ("SELECT * from user where id='$id'");
$row = mysql_fetch_array($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo $row['fname'];?></title>
</head>
<body>
<table width="100%" border="0">
<tr>
<td width="24%">
<!--Выводится фотография-->
<?PHP
echo "<img src='image.php?id={$row['photo']}' heigth=500 width=500 alt=''/>";
?>
</td>
<td width='76%'><table width='100%' border='0'>
<tr>
<td width='15%'>Фамилия</td>
<td width='85%'>
<?php echo $row['fname'];?>
</td>
</tr>
<tr>
<td>Имя</td>
<td><?php echo $row['nname'];?></td>
</tr>
<tr>
<td>Отчество</td>
<td><?php echo $row['oname'];?></td>
</tr>
<tr>
<td>Дата рожденья</td>
<td><?php echo $row['Ddate'];?></td>
</tr>
<tr>
<td>Адрес</td>
<td><?php echo $row['Street'];?></td>
</tr>
<tr>
<td>Номер телефона</td>
<td><?php echo $row['phone'];?></td>
</tr>
<tr>
<td>Дата заказа</td>
<td><?php echo $row['zdate'];?></td>
</tr>
<tr>
<td>Дата выдачи заказа</td>
<td><?php echo $row['Vdate'];?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Первый способ
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
<?php
include ('conf.php') ;
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{
$error = null;
$info = null;
$max_file_size *= 7168;
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination = $upload_dir .'/' . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен ' ;
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого, уменьшите размер файла до 7 МБ';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(
UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
);
$error_code = $_FILES['userfile']['error'];
if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное, обратитесь к разрабочику';
}
return array('info' => $info, 'error' => $error);
}
/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="userfile" />
<input type="submit" value="Закачать" name="upload_submit" />
</form>