Загрузчик файлов на сайте vseznak.ru
При разработке веб-сайта vseznak.ru потребовалось добавить функциональность загрузки файлов с помощью серверной части на языке PHP. Для этого был создан специальный скрипт "index.php", который используется в процессе загрузки файлов пользователем.
Структура скрипта
Содержимое скрипта index.php состоит из нескольких разделов:
- Начало скрипта и инициализация переменных.
- Проверка наличия загруженного файла и его размера.
- Проверка существования директории для сохранения файлов.
- Генерация уникального имени файла.
- Сохранение файла в заданную директорию.
- Отправка ответа об успешной или неудачной загрузке файла.
Начало скрипта и инициализация переменных
<?php
// Задаем коды ошибок для проверки успешности загрузки
$success = false;
$error = false;
// Задаем директорию для сохранения файлов
$uploadDir = __DIR__ . '/../uploads/';
// Проверяем, что файл был успешно загружен
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
// Проверяем размер файла
if ($_FILES['file']['size'] <= 500000) {
В данном разделе происходит инициализация переменных $success
и $error
, которые будут использоваться для проверки успешности загрузки файла. Также задается директория $uploadDir
, в которую будет сохраняться загруженный файл. Далее проверяется, что файл был успешно загружен, а также его размер.
Проверка наличия загруженного файла и его размера
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
// Проверяем размер файла
if ($_FILES['file']['size'] <= 500000) {
// Проверяем наличие директории для сохранения файлов
if (!file_exists($uploadDir)) {
if (!mkdir($uploadDir, 0777, true)) {
$error = 'Не удалось создать директорию для сохранения файлов.';
}
}
// ...
} else {
$error = 'Размер файла превышает допустимый размер.';
}
} else {
$error = 'При загрузке файла произошла ошибка.';
}
В данном разделе происходит проверка размера загруженного файла и наличия директории для его сохранения. Если размер файла превышает допустимое значение (в данном примере 500 000 байт), то переменная $error
устанавливается в значение ошибки. Если директория для сохранения файлов не существует, то она создается с разрешениями 0777.
Генерация уникального имени файла
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
// Проверяем размер файла
if ($_FILES['file']['size'] <= 500000) {
// ...
// Генерируем уникальное имя файла на основе текущей даты и времени
$fileName = date('YmdHis') . '_' . $_FILES['file']['name'];
// ...
}
}
В данном разделе происходит генерация уникального имени файла на основе текущей даты и времени с помощью функции date('YmdHis')
. Затем к имени файла добавляется оригинальное имя загруженного файла.
Сохранение файла в заданную директорию
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
// Проверяем размер файла
if ($_FILES['file']['size'] <= 500000) {
// ...
// Сохраняем файл в заданную директорию
if (!move_uploaded_file($_FILES['file']['tmp_name'], $uploadDir . $fileName)) {
$error = 'Ошибка при сохранении файла.';
} else {
$success = true;
}
// ...
}
}
В данном разделе происходит сохранение файла в заданную директорию с помощью функции move_uploaded_file()
. Если файл не удалось сохранить, то переменная $error
устанавливается в значение ошибки. Если сохранение прошло успешно, то переменная $success
устанавливается в значение успеха.
Отправка ответа об успешной или неудачной загрузке файла
if ($success) {
// Отправляем ответ об успешной загрузке файла
echo json_encode(['success' => true, 'message' => 'Файл успешно загружен.']);
} else {
// Отправляем ответ о неудачной загрузке файла
echo json_encode(['success' => false, 'message' => $error]);
}
В данном разделе отправляется ответ в формате JSON о результате загрузки файла. Если загрузка файла прошла успешно, то отправляется сообщение об успешной загрузке. В случае ошибки отправляется сообщение о неудачной загрузке с указанием причины.
Заключение
Скрипт index.php является важной частью функциональности загрузки файлов на веб-сайте vseznak.ru. Он позволяет проверить размер файла, создать необходимую директорию, сгенерировать уникальное имя для файла и сохранить его. Пользователю отображается сообщение о результате загрузки файла.
- Загрузчик файлов на сайте vseznak.ru
- Подскажите интересную браузерную игру.
- Что это за грибы? Выросли у меня в саду. Трогать боюсь...
- Помогите пожалуйста!!! Очень сильно выпадают волосы! Что делать! Какие есть эфективные методы?
- Как извращенца вычислить?
- Бывает ли добро без зла? Всегда кто-то страдает, если другой счастлив...