Вопрос по upload'у нескольких файлов

Исходя из логики:
PHP:
foreach($_FILES as $u_serfile) {
	if(!move_uploaded_file($u_serfile['tmp_name'], $mydir.$u_serfile['name'])){
	print "<br>Ошибка загрузки файла<br>";
	print_r($u_serfile);
	}
}
НО не идет!
В смысле пишет всю инфу о принятых файлах print_r($u_serfile)) и все.
 

Фанат

oncle terrible
Команда форума
если у тебя что-то "не идет", то, очевидно, проблема в твоем коде.
при чем здесь логика, если У ТЕБЯ, в ТВОЕЙ $mydir может быть что угодно? И не надо мне рассказывать, что там у тебя все чики-пики. Это ПРИМЕР.
Если что-то не работает, надо ПРОВЕРЯТЬ.
Выводить $u_serfile['error'].
проверять пути руками - выводить на экран, к примеру, пробовать копировать файлы.

Тут логика никакая не нужнаю
Тут руками надо работать.
Этим программист отличается от волшебника. Накалякал что-то - "Ой, не получилось!". А отлаживать кто будет?
 
... а вот так работает(старый код):
PHP:
if(!move_uploaded_file($_FILES['userfile1']['tmp_name'], $mydir.$_FILES['userfile1']['name'])) {
print "Ошибка загрузки файла! Дополнительная информация ниже:";
print_r($_FILES);
print "<br><br><a href=\"up_mp3.php\">Назад</a>";
exit;
}
Не понимаю.. буду воевать дальше..

-~{}~ 04.10.04 23:15:

Вот оно!!! Уже и не знаю, что я там подкрутил, но вот решение проблемы:
PHP:
foreach($_FILES as $u_serfile) {
	move_uploaded_file($u_serfile['tmp_name'], $mydir.$u_serfile['name']);
	if ($u_serfile['error']==0) {
	print "Файл ".$u_serfile['name']." загружен<br>";
    }
    }
Всем спасибо :)
 

Фанат

oncle terrible
Команда форума
иф надо подвинуть повыше на одну строчку
а мув проверять все равно.
 
А мне просто не нужны сообщения о том, что часть INPUTов оказалась без файлов. Файлов для загрузки от 1го до 5ти. А если в поле файла нет, то возникает ошибка, зачем мне юзера пугать такими ошибками?
 

Фанат

oncle terrible
Команда форума
какое отношение эти твои проблемы имеют к тому, что я написал?
Я, конечно, понимаю, что ОЧЕНЬ ТРУДНО писать программы, не понимая, ч о ты делаешь, а методом тыка - "попробуем это сюда. Не получится - двинем строчечку сюда...". Но тогда ТЕМ БОЛЕЕ, ЕСЛИ ТЫ НЕ ПОНИМАЕШЬ, что делаешь - делай тогда что тебе люди говорят понимающие, и не спорь!
 
Блин.. кажется я просёк твою фишку :)
PHP:
foreach($_FILES as $u_serfile) {
	if ($u_serfile['error']==0) {
	if (!move_uploaded_file($u_serfile['tmp_name'], $mydir.$u_serfile['name'])) {
	print "Ошибка";
	}
	print "Файл ".$u_serfile['name']." загружен<br>";
    }
    }
Я все-таки пытаюсь разбираться, дабы не делать просто Ctrl+C и Ctrl+V или по написанному...
Спасибо за терпение :D
 

Фанат

oncle terrible
Команда форума
совершенно верно.
Как раз поднятием ифа выше на одну строчку, ты и ИСКЛЮЧАЕШЬ обработку незаполненных полей - то есть, именно то, что тебе нужно.

Но кроме пустого поля, ошибка может быть и при копировании.
Кстати, перед print "Файл ".$u_serfile['name']." загружен<br>";
надо написать
else {
и в конце добавь закрывающаю скобку
иначе в случае ошибки будет очень забавное сообщение.

И учись писать с отступами. Такой код выглядит ГОРАЗДО понятнее.
PHP:
foreach($_FILES as $u_serfile) { 
  if ($u_serfile['error']==0) { 
    if (move_uploaded_file($u_serfile['tmp_name'], $mydir.$u_serfile['name'])) { 
      print "Файл ".$u_serfile['name']." загружен<br>"; 
    } else {  
      print "Ошибка"; 
    } 
  }
}
 
Сверху