Подскажите пожалуйста, как в 3 случае, узнать размер файла, или хотя бы то, что файл больше upload_max_filesize, если загружаемый файл превышает upload_max_filesize?
Заранее благодарен!
<form id="form1" action="send_email.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename">
<input type="button" value="Загрузить" onClick="tr();">
</form>
if(isset($_FILES["filename"]["tmp_name"]) && is_uploaded_file($_FILES["filename"]["tmp_name"]))
{
if ($_FILES["filename"]["size"] < 1024*20*1024)
{
if($type == "jpg")
{
if (copy($_FILES['filename']['tmp_name'], $uploadfile))
{
echo "<p>Файл успешно загружен на сервер</p>";
$message .= "Файл успешно загружен на сервер.";
mail($to, $subject, $message, $headers);
}
else
{
echo("<p>Ошибка! Не удалось загрузить файл на сервер, попробуйте повторить попытку позже!</p>");
$message .= "Файл загрузить на сервер не удалось.";
mail($to, $subject, $message, $headers);
}
}
else
{
echo ("Файл не соответствует разрешенному формату");
$message .= "Файл загрузить на сервер не удалось, так как он не соответствует разрешенному формату.";
mail($to, $subject, $message, $headers);
}
}
else
{
echo ("Размер файла превышает 20 мегабайт");
$message .= "Файл загрузить на сервер не удалось, так как он превышает допустимый размер - 20 МБ.";
mail($to, $subject, $message, $headers);
}
}
else
{
$message .= "Файл не был выбран.";
mail($to, $subject, $message, $headers);
}
-----------------------------------------------
1) до 2 Мб - работает правильно
post_max_size = 2M
2) до 8 Мб - загружает файлы, но работает не правильно
upload_max_filesize = 8M
3) больше 8 Мб - не работает вообще
------------------------------------------------
1) Если я пробую загрузить файлы < 2 Мб, тогда все работает корректно (печатаю содержимое массива $_FILES):
Array
(
[filename] => Array
(
[name] => AIPort.dll
[type] => application/x-msdownload
[tmp_name] => Z:\tmp\php17C.tmp
[error] => 0
[size] => 258048
)
)
------------------------------------------------
2) Если я пробую загрузить файлы от 2 Мб до 8 Мб, тогда я получаю вот такое вот (печатаю содержимое массива $_FILES), понятно что появляются ошибка из-за того, что post_max_size = 2M, в принципе можно в таком случае сравнивать с кодом ошибки, и если код ошибки равен 1, тогда писать письмо, что не удалось загрузить файл, так как он слишком большой, с этим понятно, но вот с 3 пунктом:
Array
(
[filename] => Array
(
[name] => EAGLES - hotel california.mp3
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)
)
------------------------------------------------
3) Если же я пробую загружать файлы больше 8 Мб, тогда я получаю следующее (печатаю содержимое массива $_FILES), из-за того, что upload_max_filesize = 8M, это тоже понятно, но как в таком случае мне узнать размер файла, ведь даже кода ошибки не выводится, и письмо с текстом, мол файл сшиком большой тоже не сформировать:
Array
(
)