|
|
|
| Уже запутался. Поля отправки файла такое <input type='file' name='file[]'>
Проблема в том что таких полей несколько, то есть отправляется несколько файлов.
Проблемы обработать один файл нет, а вот несколько, это проблематично. Как обойти массив и получить имя каждого файла? | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 12:26)
| | А как получают доступ к элементам массива? | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 12:31)
| | наверное, путем обхода
<?
foreach($_FILES['file') AS $file)
{
echo $file[0].'<br />';
}
?>
|
| |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 12:34)
| | Ну и... какие же проблемы с массивом $_FILES?
foreach($_FILES['file'] as $file)
|
только вы тут никак не получите $file[0] ... $file[n], да и не это нужно получать. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 12:37)
| | Как мне в таком порядке получить доступ к имени временного файла? То есть tmp_name? | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 12:41)
| | Значете как загружать один файл, что нужно проверять при загрузке? Вот теперь подумайте как это же самое получать в цикле для каждого элемента массива $_FILES. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 12:42)
| | блин да думал уже сколько-то.подсказали бы, был бы рад | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 12:45)
| | Значит плохо думали. Как вы загружаете один файл? Что проверяете? То есть, какова последовательность ваших действий? Опишите. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 12:55)
| |
<?
if(!empty($_FILES['filename']))
{
move_uploaded_file($arg1,$arg2)
}
?>
|
p.s. это обобщено | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 12:59)
| | За такую обобщенность по рукам бить надо! Пока не научитесь загружать как положено один файл, о массиве их и не думайте. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 13:02)
| | Хорошо, вот. Заранее известно что файл имеет расширение jpg
<?
if(!empty($_FILES['filename']))
{
move_uploaded_file($_FILES['filename']['tmp_name'],$_SERVER['DOCUMENT_ROOT']."/files/file.jpg");
}
?>
|
| |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 13:07)
| | Не делайте мне одолжния, это не мне нужно а вам.
Нет, не правильно - загрузку файлов нужно начинать проверкой на отсутсвие ошибок. То что файл дразнится "file.jpg", совсем еще не означает, что вам именно картинку грузят. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 13:19)
| | sim5, я не делаю Вам одолжения, более того все провреки я делаю. Я не хочу писать полный код обработки файла. Да могут грузить не картинку, но я сейчас не об этом, а вы начинаете говорить про какие-то проверки о которых речи быть ТУТ не может, потому что это проблему я смогу решить. Это я привел в качестве примера.
Сейчас задача сводится к тому, что мне нужно правильно обработать массив, чтобы на выходе получить 2 значения каждого загружаемого файла, это тип файла и временный файл. Вы, наверное, уже поняли зачем мне нужен тип. Да ИМЕННО проверить является файл графическим или нет. В этом вся проблема. Или вы можете что-то другое предложить? | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 13:26)
| | Или вы можете что-то другое предложить?
Я всеегда предлогал и буду это делать - читать книги.
Зачем вам на выходе 2 значения, не бейте мозг ни себе ни людям.
загрузка файла на сервер это комплекс мер по принятию и обработке файла. Вам нужно весь этот комплекс от начала до конца засунуть в цикл. | |
|
|
|
|
|
|
|
для: Valick
(14.07.2010 в 13:31)
| | Все разобрался...
Вот чего я хотел добиться
<?
$count = count($_FILES['file']['name']);
for ($i = 0; $i < $count; $i++)
{
echo $_FILES['file']['tmp_name'][$i].'<br />';
// остальное
}
?>
|
Дальше уже дело техники - проверки и все дела. Я и пытался получить список загружаемых файлов для их последущий обработки. | |
|
|
|
|
|
|
|
для: Valick
(14.07.2010 в 13:31)
| | >загрузка файла на сервер это комплекс мер по принятию и обработке файла. Вам нужно весь этот комплекс от начала до конца засунуть в цикл.
Ну я это и имел ввиду, в цикле, конечно, получить | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 13:26)
| | Коли вы знаете и делаете проверки, то тип файла, который у вас получить в массиве прблема, это профанация, ибо я могу этот тип подделать. И вы еще после этого утверждаете, что думаете?
Коли знаете, то обращайтесь в цикле к каждому элементу массива $_FILES, правда для это более удобнее цикл for (то что вы писали ранее в foreach, могли бы и проверить выводом):
<?
for($i=0; $i<count($_FILES['fieldname']); $i++) {
echo $_FILES['fieldname']['keyname'][$i].'<br>';
}
|
| |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 13:40)
| | Как же это Вы его поддлаете? Имеется ввиду $_FILES['file']['type'].
Тогда какую проверку следует использовать? | |
|
|
|
|
|
|
|
для: garold
(14.07.2010 в 13:45)
| | Молча, возьму и подделаю.
Не хотите вы думать, а пишите свои скрипты по подсказакам, а не по полученым знаниям. Об этом же говорит и ваша придыдущая тема о группировке, которую, в чем я у верен на все 100, в вашем случае вам и близко не нужна, в том варианте, в котором вам предложил sms-send. Но вы сказали "спасибо" и успокоились. Вот так и с загрузкой изображения у вас будет, а это чревато...
Ищите Гуглом "загрузка файлов на сервер безопасность", познаете много полезного. И как познаете, садитесь писать свой скрипт загрузки. | |
|
|
|
|
|
|
|
для: sim5
(14.07.2010 в 13:57)
| | Спасибо за совет, я учту. Да тут даже дело в том что этот скрипт под закрытой частью. Особая защита тут не нужно, но все же учту... | |
|
|
|