Качване на файлове

С помощта на PHP е изключително лесно да качваме файлове на сървъра. Обаче с леснотата идва и опасността така че винаги трябва да внимаваме когато позволяваме качване на файлове!

Конфигуриране на файла „php.ini“

Първо трябва да се уверим, че PHP е конфигурирано правилно за качване на файлове. Във „php.ini“ файла трябва да потърсим за file_uploads директивата и да й зададем стойност „On“:

Създаване на HTML форма

Следва да създадем една HTML форма, която ще позволява на потребителите да изберат файл с сървъра:

Някои насоки, които да следваме за HTML формата по-горе:

  • Трябва да ползваме method=“post“
  • Формата също така се нуждае от следният атрибут: enctype=“multipart/form-data“. Той указва какъв content-type да ползва след изпращането.

Без горе указаните насоки изпращането на файл да сървъра няма да работи. Други важни неща за отбелязване: Атибута type="file" на <input> тага показва поле за управление при селектиране на файл с бутон „Browse“ или „Избери“. Формата горе ще изпрати файла на страницата „upload.php“, която следва да създадем.


Създаване на PHP скрипт за качване на файл

Файлът „upload.php“ съдържа кода нужен ни за да качим файл на сървъра:

  • $target_dir = „uploads/“ – указва директорията къдета файла трябва да бъде съхранен
  • $target_file указва пътя до файла, който ще качваме на сървъра
  • $uploadOk=1 не се ползва все още (ще влезе в употреба по-късно)
  • $imageFileType съдържа файловото разширение
  • Следва проверка дали файла с изображението е реално изображение или имитарщ такова файл

Обърнете внимание: Трябва да създадем нова директория наречена „uploads“, в която се намира „upload.php“ файла. Изпратения файл ще се запази там.


Проверка дали файла вече съществува

Как да проверим дали в избраната директорията, в която трябва да запишем файла си той вече не съществува – или поне такъв със същото име :). Сега можем дазадаем някои ограничения: Първо проверяваме за файла да не би вече да съществува в директорията „uploads“. Ако го има се появява съобщение за грешка и се задава 0 на $uploadOk:


Ограничение за размера на файла

Полета за указване на файла за качване в HTML формата по-горе е именувано „fileToUpload“. Следва да прооверим размера на файла. Ако той е повече от 500kb ще се появи съобщение за грешка и $uploadOk ще приеме стойност 0:


Ограничение за качване на типовете файлове за качване

Кода, който следва позволява на потребителя качването само на файлове с разширения JPG, JPEG, PNG, и GIF. Всички останали типове файлове ще дадат съобщение за грешка преди да бъде зададена стойност 0 на $uploadOk:


Завършване на PHP скрипта

Пълният „upload.php“ файл сега би изглеждал така: