Как загрузить файлы на сервер в php?

Пользователь

от lori_jast , в категории: PHP , 2 года назад

Как загрузить файлы на сервер в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 2 года назад

@lori_jast 

В PHP, файлы можно загрузить на сервер с помощью формы HTML с типом "file". Обычно это выглядит так:

1
2
3
4
<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="myFile">
  <input type="submit" value="Загрузить файл">
</form>


Затем в скрипте PHP, указанном в атрибуте "action" формы, вы можете обработать загруженный файл. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
  $target_dir = "uploads/";
  $target_file = $target_dir . basename($_FILES["myFile"]["name"]);

  if (move_uploaded_file($_FILES["myFile"]["tmp_name"], $target_file)) {
    echo "Файл ". basename( $_FILES["myFile"]["name"]). " загружен.";
  } else {
    echo "Возникла ошибка при загрузке файла.";
  }
?>


В этом примере мы используем функцию move_uploaded_file для перемещения загруженного файла из временной директории на сервере в постоянную директорию, указанную в переменной $target_dir.


Обратите внимание, что для загрузки файлов на сервер также необходимо указать атрибут enctype формы р

Пользователь

от kennedi_pfeffer , год назад

@lori_jast 

Для загрузки файлов на сервер в PHP необходимо использовать форму с атрибутом enctype="multipart/form-data". Ниже приведен пример кода:

1
2
3
4
<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="fileToUpload">
  <input type="submit" value="Загрузить файл">
</form>


Затем в файле upload.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
$targetDir = "uploads/"; // Путь к директории, где будут сохраняться загруженные файлы

$targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));

// Проверяем, является ли файл допустимым изображением
if (isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if ($check !== false) {
        echo "Файл является изображением - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "Файл не является изображением.";
        $uploadOk = 0;
    }
}

// Проверяем, существует ли уже файл с таким же именем
if (file_exists($targetFile)) {
    echo "Файл с таким именем уже существует.";
    $uploadOk = 0;
}

// Проверяем размер файла
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Файл слишком большой.";
    $uploadOk = 0;
}

// Проверяем допустимые форматы файлов
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
    echo "Допускаются только JPG, JPEG, PNG и GIF файлы.";
    $uploadOk = 0;
}

// Если все проверки пройдены, загружаем файл на сервер
if ($uploadOk == 0) {
    echo "Файл не был загружен.";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
        echo "Файл " . basename($_FILES["fileToUpload"]["name"]) . " был успешно загружен.";
    } else {
        echo "Ошибка при загрузке файла.";
    }
}


Обратите внимание, что в приведенном примере файлы будут сохраняться в директории uploads/.