Developer от Бога

DV

четверг, 6 июля 2017 г.

PHP. Загрузка файлов. $_POST

Второй глобальный массив $_POST выполняет более сложные функции, а именно загрузку данных большого объема на сервер. Это могут быть мегабайты текста, или файлы: картинки, видео, и другое.
В этой статье будет показан простой пример окна с функциями создания записи данных на странице и загрузки изображений на сервер. Тут следует организационно разделить на два момента:
1) HTML. Создание формы. 2) PHP. Код обработки формы после нажатия кнопки.

Будут эти два документа объединены в один, или останутся разные - это зависит от дальнейшей сложности действий. В даном примере будут два разные файла: form.html и post.php. Предположим мы решаем задачу - создать запись на странице:
File "form.html"

<form action='post.php' method="post" enctype="multipart/form-data">
<input type='text' size='10' name='category' value='Category'><br>
<input type='text' size='100' name='title' value='Title'><br>
<input type="file" name="file_name" ><br>
<textarea name='content' cols='105' rows='20'>Text</textarea><br>
<button name="enter">Enter</button><br>
</fieldset><br>
</form>


File "post.php"

  1. <?php
  2. $category=$_POST['category'];
  3. $title=$_POST['title'];
  4. $content=$_POST['content'];
  5. $comand="INSERT INTO table (category,title,content) VALUES ('$category','$title','$content')";
  6. mysql_query($comand)or die(mysql_error());
  7. if (isset($_FILES['file_name'])) {// Если файловый буфер не пустой, записываем файл в нужное место
  8. $name = $_FILES['file_name']['name'];
  9. if ($_FILES['file_name']['error'] == 0 && $_FILES['file_name']['size'] > 0) {
  10. $path = 'Полный адрес папки на сервере, куда следует загрузить картинку';
  11. if (move_uploaded_file($_FILES['file_name']['tmp_name'], $path.$name)) {
  12. echo 'Файл загружен';
  13. }
  14. else {
  15. echo 'Ошибка при загрузке';
  16. }
  17. }
  18. else echo 'Картинки не загружены';
  19. }
  20. ?>

В примере созданы три поля для ввода текста, загрузчик файла, и кнопка. Как в HTML будут все эти элементы названы, такими и будут названия их элементов в массиве $_POST: поле name='category' можно будет прочитать из элемента $_POST['category']; В форме обозначено название файла который будет выполнятся после нажатия кнопки: action='post.php'.
В даном примере присутствует еще одна важная деталь, переменная $comand в которой хранится SQL команда создания записи в базе данных.

Комментариев нет:

Отправить комментарий