Выводит ошибку Warning: filesize(): stat failed for Chrysanthemum.jpg in D:\OSPanel\domains\test\index.php on line 2

231
02 января 2018, 16:16
    <?
echo filesize($_POST['image_load']);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TEST</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="buy_pixels">
<input type="file" name="image_load" id="image_load" value="" accept="image/*" required>
<input class="buy_button" type="submit" value="Buy" name="submit">
</form>
</body>
</html>

Какова причина ошибки?

Answer 1

Во-первых вы забыли атрибут у формы enctype="multipart/form-data". Это позволит дать понять, что отправляете еще и файлы.

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="buy_pixels" enctype="multipart/form-data">
                                                                                    ^-------                                                       

Во-вторых попробуйте:

echo filesize($_FILES['image_load']['tmp_name']);
// а можно вот так:
// echo $_FILES['image_load']['size'];

Т.к. файлы попадают в глобальный массив $_FILES, то с ним и надо работать

Answer 2

Первое - это файлы передаются через $_FILES. Поэтому вместо этого кода:

<?
echo filesize($_POST['image_load']);
?>

Ставим этот:

<?
if ($_FILES){
    print "<pre>";
    print_r($_FILES);
    exit;
}
?>

В этом массиве есть размер изображения. Но даже с этим кодом вы не получите результат, т.к. у form не установлен атрибут enctype, необходимый для отправки файлов. Нужно так:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="buy_pixels" enctype="multipart/form-data">

Так Вы получите массив, с которым можно работать дальше.

READ ALSO
Работа с Amazon Api

Работа с Amazon Api

ЗдраствутеНужно сформировать конкретный запрос к апи амазона

221
AdBlock + ajax Не видит элемент

AdBlock + ajax Не видит элемент

На сайте с помощью

255
php не загружает несколько файлов

php не загружает несколько файлов

Есть вот такой код:

290