Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Изагрузка изображения на сервер / 4 сообщений из 4, страница 1 из 1
12.12.2012, 15:26
    #38075935
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изагрузка изображения на сервер
Доброе время суток.
У меня есть вопросик у Профессионалов.

Нашел на просторах интернета несколько скриптов для загрузки изображения на сервер :
1- просто загружает файл на сервер
2- загружает файл изображения в БД в поле BLOB

Со вторым способом вроде бы разобрался, только не как не могу сделать так что бы id загруженной картинки вставлялся в поле анкеты для заполнения ее.

А с первым способом ни как не могу разобраться как сделать так что бы параметры пути загруженной картинки вставлялись в БД и дальше можно было продолжать заполнять анкету.

Я знаю, что размещать файлы в БД нельзя и из-за этого Бд может медленно работать, но другого нормального рабочего варианта я пока что не смог найти....


Помогите пожалуйста.
2 способ
Загрузка изображения
Код: php
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>&nbsp;</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>


заполнение анкеты
Код: php
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>


Запись данных из анкеты
Код: php
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>";
}
		 
		 
		 
		 ?>


Файл для отображения изображения из бД
Код: php
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="" />-->


Отображение информации об пользователе
Код: php
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>





Первый способ

Код: php
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>
	
	


...
Рейтинг: 0 / 0
12.12.2012, 15:44
    #38075970
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изагрузка изображения на сервер
...
Рейтинг: 0 / 0
12.12.2012, 16:01
    #38076020
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изагрузка изображения на сервер
ScareCrow,

Спасибо, классная штука, сейчас буду пробовать.

А не подскажите как сделать с первым вариантом, что бы писалось путь в БД и потом вывод я думаю час смогу сделать (может быть конечно. )
...
Рейтинг: 0 / 0
12.12.2012, 16:02
    #38076027
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изагрузка изображения на сервер
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Изагрузка изображения на сервер / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]