Как закачать файл на сервер с php?

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

от lilla.herman , в категории: PHP , год назад

Как закачать файл на сервер с php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@lilla.herman 

Для загрузки файла на сервер с помощью PHP вы можете использовать функцию move_uploaded_file().


Пример кода:

 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
47
48
49
50
<?php
$target_dir = "uploads/"; // директория, в которую будет загружен файл
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // полный путь к файлу
$uploadOk = 1; // флаг для проверки возможности загрузки файла

// Получение информации о файле
$fileType = strtolower(pathinfo($target_file,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($target_file)) {
    echo "Файл уже существует.";
    $uploadOk = 0;
}

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

// Проверка типа файла
if($fileType != "jpg" && $fileType != "png" && $fileType != "jpeg"
&& $fileType != "gif" ) {
    echo "Только JPG, JPEG, PNG и GIF файлы разрешены.";
    $uploadOk = 0;
}

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


В приведенном примере файл загружается в директорию uploads/, а затем проверяется его тип, размер и проверяется, существует ли уже файл с таким именем. Если все проверки пройдены успешно, файл перемещается в указанную директорию на сервере с помощью функции move_uploaded_file().

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

от sylvester , 6 месяцев назад

@lilla.herman 

Очень хороший пример кода! При этом, если вы хотите повысить безопасность вашего кода, рекомендуется убедиться, что загружаемые файлы действительно являются тем типом, который ожидается. Это можно сделать, например, с помощью функции mime_content_type() для определения MIME-типа загруженного файла.


Также важно учесть, что пользователи могут загружать зловредные файлы на ваш сервер, поэтому важно регулярно проверять их, а также ограничивать доступ к директории загрузки.