Добавление картинки в бд через форму

Приложение для загрузки файлов на сервер представляет собой HTML-форму (upload.html) и скрипт upload.php для ее обработки.

Замечание: Вы можете загрузить промышленную версию системы загрузки файлов на сервер из раздела downloads. Система Image Java Editor позволит вам не только загрузить файл на сервер, но и изменить его размер, фон и др.

Замечание: Upload бинарных файлов (картинок, архивов, программ и т.д.) стандартным методом часто приводит к тому, что файлы оказываются "битыми". Это связано с любовью Апача к всевозможным перекодировкам. Для того, чтоб он этим не занимался, допишите в файл httpd.conf следующее:

<Location />

CharsetRecodeMultipartForms Off

</Location>

Код формы

HTML5Выделить код

1
2
3
4
5
6
7
8
9
10
11
12



  <title>Загрузка файлов на сервер</title>


       Форма для загрузки файлов 
      <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"> 
      <input type="submit" value="Загрузить">
      



Код скрипта обработки формы

HTML5Выделить код

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



  <title>Результат загрузки файла</title>


<?php
   if($_FILES["filename"]["size"] > 102431024)
   {
     echo ("Размер файла превышает три мегабайта");
     exit;
   }
   if(copy($_FILES["filename"]["tmp_name"],
     "c:/temp/".$_FILES["filename"]["name"]))
   {
     echo("Файл успешно загружен ");
     echo("Характеристики файла: ");
     echo("Имя файла: ");
     echo($_FILES["filename"]["name"]);
     echo("Размер файла: ");
     echo($_FILES["filename"]["size"]);
     echo("Каталог для загрузки: ");
     echo($_FILES["filename"]["tmp_name"]);
     echo("Тип файла: ");
     echo($_FILES["filename"]["type"]);
   } else {
      echo("Ошибка загрузки файла");
   }
?>
 



Атрибут entype формы определяет вид кодировки, которую браузер применяет к параметрам формы. Для того чтобы отправка файлов на сервер действовала, атрибуту entype необходимо присвоить значение multipart/form-data. По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.

Элемент ввода этой формы должен иметь тип file.

После того, как получен HTTP-запрос, содержимое загруженного файла записывается во временный файл, который создается в каталоге сервера, заданном по умолчанию для временных файлов, если другой каталог не задан в файле php.ini (директива upload_tmp_dir).

Характеристики загруженного файла доступны через двумерный массив HTTP_POST_FILES.

Cкрипт upload.php загружает файл на сервер и копирует его в каталог /temp/. Внимание! В демонстрационном примере файл загружается на диск С в директорию /temp. Поэтому в реальной работе на сервере замените путь c:/temp на тот, который нужен.

После выполнения этого скрипта выбранный для загрузки файл будет помещен в каталог c:/temp, а броузер выдаст фразу: Файл успешно загружен

В некоторых случаях требуется ограничить размер файла, который может быть загружен на сервер. К примеру, чтобы разрешить загрузку на сервер только файлов с размером не более 3 Мбайт, в приведенном скрипте содержится код:

PHPВыделить код

1
2
3
4
5

if($_FILES["filename"]["size"] > 102431024)
{
  echo("Размер файла превышает три мегабайта");
  exit;
}

Максимальный размер загружаемого файла можно также задать при помощи директивы upload_max_filesize, значение которой по умолчанию равно 2 Мбайт:

PHPВыделить код

| | |
| --- | --- |
| 1 | if($_FILES["filename"]["size"] > upload_max_filesize) |

материал взят с

сайта