| |
|
|
| | На клиентской стороне сдаются несколько файлов в виде массива file[0], file[1]
итд.
Как мне их принять: Узнать сколько их, запустить цикл их обработки? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(30.01.2008 в 15:14)
| | | Анализируйте массив $_FILES, который в этом случае станет не двумерным, а трехмерным массивом. | |
| |
|
|
| |
|
|
| |
для: cheops
(30.01.2008 в 15:19)
| | | Понятно что $_FILES, но как? Где у него вырастет третье измерение?
Tак писать?:
foreach($_FILES['image'] as $image){
copy($image['tmp_name'], $new_name.$i++);
}
Это нормальная для PHP конструкция, или делают иначе? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(30.01.2008 в 17:02)
| | | Для того, чтобы посмотреть структуру массива в PHP можно воспользоваться print_r(). | |
| |
|
|
| |
|
|
| |
для: Unkind
(30.01.2008 в 17:04)
| | | Вот она структура массива:
Array (
[image] => Array (
[name] => Array ( [0] => b100_100.gif
[1] => b100_100.jpg
[2] => b120_240.gif
[3] => b120_240.jpg [4] => )
[type] => Array ( [0] => image/gif
[1] => image/jpeg
[2] => image/gif
[3] => image/jpeg
[4] => )
[tmp_name] => Array ( [0] => C:\WINDOWS\TEMP\phpAB.tmp
[1] => C:\WINDOWS\TEMP\phpAC.tmp
[2] => C:\WINDOWS\TEMP\phpAD.tmp
[3] => C:\WINDOWS\TEMP\phpAE.tmp
[4] => )
[error] => Array ( [0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 4 )
[size] => Array ( [0] => 5759
[1] => 367811
[2] => 15141
[3] => 255458
[4] => 0 ) ) )
|
Но, извините меня, ничего не пойму.
Может быть вы можете просто написать мне цикл копирования из временной директории в постоянную? Надо однажды увидеть реальный цикл, работающий с многомерным массивом, иначе очень трудно сообразить. | |
| |
|
|
| |
|
|
| |
для: Eugene77
(31.01.2008 в 16:35)
| | |
foreach ($_FILES["userfile"] as $file)
{
move_uploaded_file($file["tmp_name"], $path); //плюс всякие проверки
}
|
| |
| |
|
|
| |
|
|
| |
для: olejek
(31.01.2008 в 16:54)
| | | Вот это понятно, спасибо!
А советы посмотреть структуру массива, мне кожется не совсем уместны в данном случае. Так-ли мне её важно знать. И помогает ли она записать это простое выражение?! | |
| |
|
|
| |
|
|
| |
для: Eugene77
(31.01.2008 в 17:27)
| | | Важно, если вы действительно хотите понять как принять массив файлов. Ибо у вас опять возникнут вопросы.) | |
| |
|
|
| |
|
|
| |
для: sim5
(31.01.2008 в 18:53)
| | | >Важно, если вы действительно хотите понять как принять массив файлов. Ибо у вас опять возникнут вопросы.)
Вы правы. Опять у меня ерунда получается:
Array ( [0] => d120_600.jpg [1] => b120_240.jpg [2] => b100_100.jpg [3] => )
Array ( [0] => image/jpeg [1] => image/jpeg [2] => image/jpeg [3] => )
Array ( [0] => C:\WINDOWS\TEMP\php49.tmp [1] => C:\WINDOWS\TEMP\php4A.tmp [2] => C:\WINDOWS\TEMP\php4B.tmp [3] => )
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 4 )
Array ( [0] => 167667 [1] => 255458 [2] => 367811 [3] => 0 )
вот такие чудеса я получаю циклом
foreach ($_FILES["image"] as $file){
Так я и не пойму как этот цикл правильно записать. И что именно мне надо понять.
Неужели нет готового рецепта?! Никто не знает как принимаются массивы файлов или это секрет? Или правилами форума запрещено разглашать такую информацию?
Или таким как я чайникам полезнее посещать Гугл, чем этот форум? | |
| |
|
|
|
| |
|
|
| |
для: mihdan
(01.02.2008 в 11:21)
| | | >http://phpclub.ru/detail/article/upload
Признаться, яснее не стало. Да и нового вроде бы ничего не узнал.
Загрузка одного файла - это я знаю. А серверная сторон а для нескольких - не рассмотрена.
Суть моей проблемы вот в чём:
Надо ли самому писать функцию для того, чтобы поменять столбцы и строки местами или есть для этого стандартная функция, или можно сразу это регулировать средствами языка, то есть делать цикл по моему выбору - хоть по строкам, хоть по столбцам? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(01.02.2008 в 12:07)
| | | 1. Какие строки, какие столбцы? Вы о чем. Что не можете в цикле по массиву пройти?
<?
foreach ($_FILES["userfile"] as $file) {
move_uploaded_file($file["tmp_name"], $path.$file["name"]);
}
?>
|
2. Как же вы читали? Второй пример как раз на загрузку нескольких файлов! | |
| |
|
|
| |
|
|
| |
для: Eugene77
(01.02.2008 в 12:07)
| | |
for ($i=0; $i<=count($_FILES['userfile']); $i++)
{
move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $path);
}
|
А в предыдущем коде действительно была ошибка! | |
| |
|
|
| |
|
|
| |
для: Eugene77
(01.02.2008 в 12:07)
| | | Ладно, спасибо всем, кто помогал, и кто не очень...
Я махнул на все тонкости PHP рукой и сделал стандартно как в фортране (или в СИ) -не важно, но на PHP не похоже:
<?
for ($i=0; $_FILES["image"]['tmp_name'][$i]!=NULL; $i++){
if (!empty($_FILES['image']['tmp_name'][$i]) && $_FILES['image']['tmp_name'][$i] != "-")
............И так далее далее и далее
Надеюсь, хоть кто-нибудь похохочет над таким синтаксисом!
}
|
Зато работает!
Приходится, конечно, на скрипт смотреть зажмурившись, ну или через тёмные очки, но не всё коту масленница! | |
| |
|
|