Answer the question
In order to leave comments, you need to log in
Why are files not saved on the server?
<?php
// ограничение размера файла
$limit_size = 1*1024*1024; // 1 Mb
// корректные форматы файлов
$valid_format = array("jpeg", "jpg", "gif", "png", "pdf");
// хранилище ошибок
$error_array = array();
// путь до нового файла
$path_file = "files/";
// имя нового файла
$rand_name = md5(time() . mt_rand(0, 9999));
// если есть отправленные файлы
if($_FILES){
// валидация размера файла
if($_FILES["upload_file"]["size"] > $limit_size){
$error_array[] = "Размер файла превышает допустимый!";
}
// валидация формата файла
$format = end(explode(".", $_FILES["upload_file"]["name"]));
if(!in_array($format, $valid_format)){
$error_array[] = "Формат файла не допустимый!";
}
// если не было ошибок
if(empty($error_array)){
// проверяем загружен ли файл
if(is_uploaded_file($_FILES["upload_file"]["tmp_name"])){
// сохраняем файл
move_uploaded_file($_FILES["upload_file"]["tmp_name"], $path_file . $rand_name . ".$format");
}else{
// Если файл не загрузился
$error_array[] = "Ошибка загрузки!";
}
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<br/>
<?php if(!empty($error_array)): ?>
<span style="color: red;">Файл не загружен!</span><br/>
<?php foreach($error_array as $one_error): ?>
<span style="color: red;"><?=$one_error;?></span><br/>
<?php endforeach; ?>
<?php endif; ?>
<?php if(empty($error_array) AND $_FILES): ?>
<span style="color: green;">Файл успешно загружен!</span><br/>
<?php endif; ?>
<form action="/form/index.php" method="POST" enctype="multipart/form-data">
<input type="file" name="upload_file"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>
, Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question