$arr = reset(next($_FILES));
а следующий элемент пуст, то выдаст ошибку, как $arr не присваивать reset(next($_FILES)), если он пуст и чтобы не было ошибки...
Warning: reset() [function.reset]: Passed variable is not an array or object in
Спустя 8 минут, 35 секунд (1.04.2011 - 10:22) kirik написал(а):
Посмотри в мануале как используются и что отдают на выходе функции next и reset.
Спустя 39 минут, 48 секунд (1.04.2011 - 11:02) Trianon написал(а):
Цитата |
Всем привет, если сделать, так: $arr = reset(next($_FILES)); |
так может не надо так делать?
Спустя 31 минута, 27 секунд (1.04.2011 - 11:33) nugle написал(а):
Trianon, а вы можете что то другое предложить?
Спустя 9 минут, 15 секунд (1.04.2011 - 11:42) nugle написал(а):
почитал в мануале, есть функция, но ошибки на 20 строках и вывода никакого нет
В мануале написано
В мануале написано
Цитата |
Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией. |
function cycle($meth)
{
for($i=1; $i<=20; $i++)
{
if($i==1)
{
if(reset(current($_FILES)) === true)
{
$arr2 = reset(current($_FILES));
$arr .= $arr2;
}
}
else
{
if(reset(next($_FILES)) === true)
{
$arr2 = reset(next($_FILES));
$arr .= $arr2;
}
}
}
echo $arr;
}
if ($sub)
cycle('name');
подскажите плиз
Спустя 8 минут, 29 секунд (1.04.2011 - 11:51) sergeiss написал(а):
nugle - я тебе уже в другой теме сказал, что ты занимаешься мазохизмом... Ты опиши задачу, а мы тебе подскажем более правильный алгоритм. Пока по твоим вопросам можно только догадываться, с вероятностью не более 50%, что же ты на самом деле хочешь сделать.
Я пока могу только предположить, что у тебя несколько полей ввода файлов и ты хочешь пройтись по ним и узнать, где были загружены файлы. Если это так, то ты совершенно неправильно обрабатываешь входные данные из $_FILES.
Я пока могу только предположить, что у тебя несколько полей ввода файлов и ты хочешь пройтись по ним и узнать, где были загружены файлы. Если это так, то ты совершенно неправильно обрабатываешь входные данные из $_FILES.
Спустя 8 минут, 33 секунды (1.04.2011 - 11:59) nugle написал(а):
sergeiss,
обрабатываю так как вы все советуете!
Да правильно, с помощью JQ создаю поля ввода картинок
а с помощью класса обрабатываю!
обрабатываю так как вы все советуете!
Да правильно, с помощью JQ создаю поля ввода картинок
$(document).ready(function(){
i = 1;
$('#uploadBut').append('<input type="file" name="uploadfile' + i + '" /><br />');
$('.plus').click(function(){
i=i+1;
if(i<=20)
$('#uploadBut').append('<input type="file" name="uploadfile' + i + '" /><br />');
else
alert('Нельзя вставлять более 20 изображений');
})
})
а с помощью класса обрабатываю!
<?php
// $_FILES['uploadfile']['name'];
// $_FILES['uploadfile']['size'];
// $_FILES['uploadfile']['type'];
// $_FILES['uploadfile']['tmp_name'];
class uploadImg
{
public function uploadTest()
{
if($this->type() == true && $this->size() == true && $this->movement() == true)
return true;
}
public function cycle($meth)
{
for($i=1; $i<=20; $i++)
{
if($meth == 'name')
{
if($i==1)
{
if($arr2 = reset(current($_FILES)))
{
$arr .= $arr2;
}
}
else
{
if($arr2 = reset(next($_FILES)))
{
$arr .= $arr2;
return $arr;
}
}
}
elseif($meth == 'size')
{
if($i==1)
return end(current($_FILES));
else
return end(next($_FILES));
}
elseif($meth == 'tmp_name')
{
if($i==1)
{
$arr = current($_FILES);
$arr2 = next($arr);
$arr2 = next($arr);
return $arr2;
}
else
{
$arr = next($_FILES);
$arr2 = next($arr);
$arr2 = next($arr);
return $arr2;
}
}
else
return $arr;
}
}
public function createImg()
{
$img .= '\n'.$this->cycle('name');
return $img;
}
public function createImgUrl()
{
$url .= '\n'.$this->uploaddir.'/'.$this->cycle('name');
return $url;
}
private $uploaddir = 'images';
private function type()
{
$types = array('jpg','jpeg','gif','png');
$typefile = explode('.', $this->cycle('name'));
foreach ($types as $key => $value)
{
foreach($typefile as $key2 => $value)
{
if($types[$key] == $typefile[$key2])
{
$mess = true;
break;
}
}
}
if($mess != true)
{
$mess = false;
}
return $mess;
}
private function size()
{
$size = 1024*1024*10;
if($this->cycle('size') < $size)
return true;
}
private function movement()
{
$destination = $this->uploaddir.'/'.$this->cycle('name');
if (move_uploaded_file($this->cycle('tmp_name'), $destination))
return true;
}
}
Спустя 3 часа, 46 минут, 9 секунд (1.04.2011 - 15:46) sergeiss написал(а):
Цитата (nugle @ 1.04.2011 - 12:59) |
обрабатываю так как вы все советуете! |
Я пока еще ничего не советовал, вроде как... Я пытаюсь пока понять, что ты хочешь сделать
Ты мне вот что не ответил: ты хочешь просто пройти по набору полей ввода файлов и понять, где было что-то загружено, а где - не было? Верно?