|
|
|
| Доброго времени суток есть вопрос
Форма содержит 3 поля типа file, как перед сохраннением проверить выбран ли хоть один файл?
isset и empty не выходит, форма отправляется успешно:((((( | |
|
|
|
|
|
|
|
для: chexov
(23.08.2010 в 04:31)
| |
<?php
$fileexists = false;
if (file_exists($_FILES['file1']['tmp_name'])){
$fileexists = true;
}
else{
if (file_exists($_FILES['file2']['tmp_name'])){
$fileexists = true;
}
else{
if (file_exists($_FILES['file3']['tmp_name'])){
$fileexists = true;
}
}
}
if (!$fileexists) $error = "Пожалуйста, укажите хотя бы один файл";
?>
|
| |
|
|
|
|
|
|
|
для: Commander
(23.08.2010 в 06:41)
| | А зачем? Количество элементов массива $_FILES достаточно проверить. | |
|
|
|
|
|
|
|
для: sim5
(23.08.2010 в 06:44)
| | сделал так:
<?php
for( $i = 0; $i < count($_FILES['file']['tmp_name']); $i++)
{
if (empty($_FILES['file']['tmp_name'][$i])) echo "Пожалуйста, укажите хотя бы один файл";
}
?>
|
работает, но только если выбраны все 3 файла...
Или сделать проверку первого поля
<?php
for( $i = 0; $i < count($_FILES['file']['tmp_name']); $i++)
{
if (empty($_FILES['file']['tmp_name']['0'])) echo "Пожалуйста, укажите хотя бы один файл";
}
?>
|
| |
|
|
|
|
|
|
|
для: chexov
(23.08.2010 в 08:47)
| |
if (count($_FILES['file']['tmp_name']) === 0 ) echo "Пожалуйста, укажите хотя бы один файл";
|
у вас в коде, в цикле если хотя бы один файл не указан, то будет выводится сообщение, поэтому и работает только при указании 3х файлов | |
|
|
|
|
|
|
|
для: xMikeXeeioi
(23.08.2010 в 09:40)
| | Так нельзя проверять. Количество ключей будет возвращено столько, сколько элементов в форме, и не важно, пустые они или нет. | |
|
|
|
|
|
|
|
для: chexov
(23.08.2010 в 08:47)
| |
<?php
$fileexists = false;
foreach ($_FILES as $value){
if (file_exists($value['tmp_name'])){
$fileexists = true;
break;
}
}
if (! $fileexists) echo "Пожалуйста, укажите хотя бы один файл";
?>
|
| |
|
|
|
|
|
|
|
для: chexov
(23.08.2010 в 08:47)
| | Достаточно проверить количество возвращаемых элементов массива $_POST ключа ['file']['tmp_name'] (пример для условия, если поля именуются как file[]).
<?
if($num = array_diff($_FILES['file']['tmp_name'], array(''))) echo count($num);
else echo "No files";
|
| |
|
|
|