|
|
|
| Как узнать был ли файл выбран пользователем? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 14:22)
| | $_FILES | |
|
|
|
|
|
|
|
для: garold
(11.06.2010 в 14:43)
| |
if(empty($_FILES)) echo "Файл не выбран";
|
Так? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 15:40)
| | print_r($_FILES);
посомтрите что там. | |
|
|
|
|
|
|
|
для: sl1p
(11.06.2010 в 15:45)
| | если файл не выбран выводит весь массив $_FILES - Array ( [uf] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
если выбран выводит пустой массив- Array ( ) | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 15:54)
| | наверное наоборот :)) | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 14:22)
| | Вот вам моя версия этого скрипта
<?
if(empty($_FILES['uf']['filename']))
{
$err[] = "Вы не выбрали файл для загрузки!";
}
if (!isset($_POST['folder']))
{
$err[] = "Вы не выбрали папку для сохранения!";
}
if(isset($err))
{
foreach($err as $errors) echo "$errors<br>";
}
?>
|
У меня тут еще кусок от предупреждения на счет папок | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 16:03)
| | Если в форме folder - не чекбокс и не радиокнопка, то по идее isset будет возвращать всегда true
А вот $err должен быть объявлен еще до всех этих телодвижений, иначе у вас должен вылезать notice при отсутствии ошибок.
<?php
$err = '';
if (empty($_FILES['uf']['filename']))
$err[] = "Вы не выбрали файл для загрузки!";
if (empty($_POST['folder']))
$err[] = "Вы не выбрали папку для сохранения!";
if (!empty($err))
foreach($err as $errors) echo "$errors<br>";
|
| |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 16:17)
| | >Если в форме folder - не чекбокс и не радиокнопка, то по идее isset будет возвращать всегда true
>А вот $err должен быть объявлен еще до всех этих телодвижений, иначе у вас должен вылезать notice при отсутствии ошибок.
>
>
<?php
>$err = '';
>if (empty($_FILES['uf']['filename']))
> $err[] = "Вы не выбрали файл для загрузки!";
>
>if (empty($_POST['folder']))
> $err[] = "Вы не выбрали папку для сохранения!";
>
>if (!empty($err))
> foreach($err as $errors) echo "$errors<br>";
>
|
Постояно пишет что не выбран файл | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 17:53)
| | Смеетесь? Я использовал ваш код, что ж вы его не проверили? :) | |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 16:17)
| | не вылезет notice, здесь же происходит проверка на наличие вообще $err=) | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 14:22)
| | Отправка
<form action='upfile.php' method='POST' enctype='multipart/form-data'>
Выберите файл:<input type='file' name='file'><br>
Выберите папку<br>
<input type='radio' name='folder' value='other'> Разное<br>
<input type='radio' name='folder' value='img'> Картинки<br>
<input type='submit'>
</form>
|
Для справки
Обработчик
<?php
$err = '';
if (empty($_FILES['file']['filename']))
$err[] = "Вы не выбрали файл для загрузки!";
if (empty($_POST['folder']))
$err[] = "Вы не выбрали папку для сохранения!";
if (!empty($err))
foreach($err as $errors) echo "$errors<br>";
?>
|
| |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 17:57)
| | Выше я написал
"Если в форме folder - не чекбокс и не радиокнопка, то по идее isset будет возвращать всегда true"
У вас как раз таки радиокнопка, и надо проверять isset.. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 17:57)
| |
if (empty($_FILES['file']['name']))
|
Посмотрите еще раз на свой массив $_FILES, где вы его выводили. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 17:57)
| | Люди, посмотрите и по тестируйте!
<?php
echo $_POST['folder'];
echo "<br>".$_FILES['file']['name'];
?>
|
Попробуйте через мою форму по выбирайте файл и папку.
Файл выбираешь, отправляешь, не чего не выводит.
Когда выбираешь только только папку, выводит все правильно.
Когда выбираешь и файл и папку не чего не выводит! | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(13.06.2010 в 13:02)
| | сделайте форму, поместите туда <input type=file name=newfile> и <input type=submit>
в php скрипте, к которому ссылается форма напишите print_r($_FILES);
и вы сразу все поймете | |
|
|
|
|
|
|
|
для: NSDaler
(13.06.2010 в 13:11)
| | не понятно. Когда файл не выбран пишет Array ( [file] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
Когда выбран пишет Array() | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(13.06.2010 в 13:23)
| | [error] => 4
прочтите сперва в мануале о загрузке файлов на сервер. | |
|
|
|
|
|
|
|
для: NSDaler
(13.06.2010 в 13:11)
| | Че, надо проверять? Если массив не пустой то выдаем ошибку? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.06.2010 в 17:57)
| | Загрузку изображения (пермещения в папку) нужно начинать с проверки отсутствия ошибок при загрузке ($_FILES['file']['error']).
Не выгодно опять грузить файл, если пользователь забыл указать папку.
Сама логика скрипта у вас ни к черту. | |
|
|
|
|
|
|
|
для: sim5
(13.06.2010 в 13:26)
| | И что вы предлагаете? С начала грузить файл, потом выбирать куда его сохранять? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(13.06.2010 в 13:31)
| | Я вам уже предложил - почитать в мануале о загрузке файлов на сервер, вы совершенно не представляете себе этого вопроса.
Что касается перемещения из временной папки в папку назначения, то зачем повторно заставлять пользователя загружать файл, если он успешно загружен? Пусть исправит ошибку - укажет папку, а ранее загруженный файл временно сохранить при этом, и использовать для этого сессию, дабы не создавать мусора, если пользователь покинет сервер. | |
|
|
|