[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу разобраться с $_FILES
Djamali
День добрый форумчане.
У меня следующая проблема
имеется форма:

<tr bgcolor="#FFFFFF"><td>Фотография 1</td><td><input type="file" name="Fotografiya_1" style="width: 100%;"></td></tr>
<tr
bgcolor="#FFFFFF"><td>Фотография 2</td><td><input type="file" name="Fotografiya_2" style="width: 100%;"></td></tr>
<tr
bgcolor="#FFFFFF"><td>Фотография 3</td><td><input type="file" name="Fotografiya_3" style="width: 100%;"></td></tr>
<tr
bgcolor="#FFFFFF"><td>Фотография 4</td><td><input type="file" name="Fotografiya_4" style="width: 100%;"></td></tr>
<tr
bgcolor="#FFFFFF"><td>Фотография 5</td><td><input type="file" name="Fotografiya_5" style="width: 100%;"></td></tr>


на денвере следующий скрипт все прекрасно обрабатывает


for($i=1;$i<=5;$i++)
{

$uploaddir =$_SERVER['DOCUMENT_ROOT']."/images/uploads/";


copy($_FILES['Fotografiya_'.$i]['tmp_name'], $uploaddir.$_FILES['Fotografiya_'.$i]['name']);

}

но на хостинге массив $_FILES приход только с одним значением
$_FILES['Fotografiya_1'] а должно быть таких 5 $_FILES['Fotografiya_2'],$_FILES['Fotografiya_3'],$_FILES['Fotografiya_4'],$_FILES['Fotografiya_5']
В чем может быть проблема, дайте хотя бы направление куда копать. Заранее благодарю



Спустя 11 минут, 43 секунды (31.03.2011 - 14:29) neadekvat написал(а):
Имена лучше давать в таком формате:
name="Fotografiya[]"

Так удобнее работать, по-моему. В скрипте напиши:
print_r($_FILES);

Чтобы понять, какая получается в результате структура.

А дальше, если там будет только один элемент, будем думать.

Спустя 27 минут, 29 секунд (31.03.2011 - 14:57) Djamali написал(а):
делал и таким способом. результат один и тоже, на локалке все ок, на хосте тормозит,закидывает только одну штуку.

Спустя 55 минут, 18 секунд (31.03.2011 - 15:52) Trianon написал(а):
Djamali
Еще раз!
Что выводит print_r($_FILES); ?

Спустя 13 минут, 46 секунд (31.03.2011 - 16:06) Djamali написал(а):
на денвере
Array ( [Fotografiya] => Array ( [name] => Array ( [0] => 1.jpg [1] => 2.jpg [2] => 3.jpg [3] => 4.jpg [4] => 5.jpg ) [type] => Array ( [0] => image/jpeg [1] => image/jpeg [2] => image/jpeg [3] => image/jpeg [4] => image/jpeg ) [tmp_name] => Array ( [0] => Z:\tmp\phpD63E.tmp [1] => Z:\tmp\phpD63F.tmp [2] => Z:\tmp\phpD640.tmp [3] => Z:\tmp\phpD641.tmp [4] => Z:\tmp\phpD642.tmp ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) [size] => Array ( [0] => 2053 [1] => 2254 [2] => 2821 [3] => 2549 [4] => 2480 ) ) )


на хостинге

Array ( [Fotografiya] => Array ( [name] => Array ( [0] => 1.jpg ) [type] => Array ( [0] => image/jpeg ) [tmp_name] => Array ( [0] => /tmp/phpEfw46P ) [error] => Array ( [0] => 0 ) [size] => Array ( [0] => 2053 ) ) )


вот сама форма

<form action="" method="post" enctype="multipart/form-data">
<цикл>
<tr bgcolor="#FFFFFF"><td><?=$row[$i]?></td><td><input type="file" name="Fotografiya[]" style="width: 100%;"></td></tr>
</цикл>
</fotm>

Спустя 5 минут, 40 секунд (31.03.2011 - 16:12) Trianon написал(а):
тег <pre> нарисуйте перед print_r() пожалуйста.

Спустя 7 минут, 12 секунд (31.03.2011 - 16:19) Djamali написал(а):
на хостинге
Array
(
[
Fotografiya] => Array
(
[
name] => Array
(
[
0] => 1.jpg
)

[
type] => Array
(
[
0] => image/jpeg
)

[
tmp_name] => Array
(
[
0] => /tmp/phpL79Hki
)

[
error] => Array
(
[
0] => 0
)

[
size] => Array
(
[
0] => 2053
)

)

)

денвер
Array
(
[
Fotografiya] => Array
(
[
name] => Array
(
[
0] => 1.jpg
[1] => 2.jpg
[2] => 3.jpg
[3] => 4.jpg
[4] => 5.jpg
)

[
type] => Array
(
[
0] => image/jpeg
[1] => image/jpeg
[2] => image/jpeg
[3] => image/jpeg
[4] => image/jpeg
)

[
tmp_name] => Array
(
[
0] => Z:\tmp\php9760.tmp
[1] => Z:\tmp\php9761.tmp
[2] => Z:\tmp\php9762.tmp
[3] => Z:\tmp\php9763.tmp
[4] => Z:\tmp\php9764.tmp
)

[
error] => Array
(
[
0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
)

[
size] => Array
(
[
0] => 2053
[1] => 2254
[2] => 2821
[3] => 2549
[4] => 2480
)

)

)

Спустя 1 час, 58 минут, 38 секунд (31.03.2011 - 18:17) kasichvadim написал(а):
Наверное копайте в сторону php.ini (max_file_uploads)

Спустя 12 минут, 58 секунд (31.03.2011 - 18:30) sergeiss написал(а):
Во-первых, форму можно оставить "как есть".
Во-вторых, надо использовать тут цикл foreach для переборки массива FILES. При этом надо оценивать, был ли загружен файл через определенный элемент, и тогда уж копировать.
В-третьих, в данном случае надо использовать move_uploaded_file(), а не copy().

Более подробно см. в описаниях указанных функций, например, скачай хэлп по ПХП у меня из подписи. Там же можно найти и подробное описание для $_FILES.

Спустя 13 минут, 30 секунд (31.03.2011 - 18:44) Trianon написал(а):
так наверное к элементам стоит обращаться
не как $_FILES['Fotografiya_'.$i]['tmp_name'],
а как $_FILES['Fotografiya']['tmp_name'][$i], не так ли?

и таки да
Что там в var_dump(ini_get('max_file_uploads'));?

Спустя 5 минут, 34 секунды (31.03.2011 - 18:49) Guest написал(а):
Цитата (Trianon @ 31.03.2011 - 15:44)
так наверное к элементам стоит обращаться
не как $_FILES['Fotografiya_'.$i]['tmp_name'],
а как $_FILES['Fotografiya']['tmp_name'][$i], не так ли?

У него в форме

<input type="file" name="Fotografiya_1" style="width: 100%;">
<
input type="file" name="Fotografiya_2" style="width: 100%;">


$_FILES['Fotografiya']['tmp_name'][$i] не сработает

Спустя 3 минуты, 54 секунды (31.03.2011 - 18:53) Trianon написал(а):
Guest
Я вижу , что у него в форме на данный момент, хотя бы потому что вижу вид пришедшего $_FILES.
А Вам советую разуть глаза. А еще зарегистрироваться. С анонимом говорить тянет не очень.

Спустя 19 часов, 47 минут, 14 секунд (1.04.2011 - 14:41) Djamali написал(а):
var_dump(ini_get('max_file_uploads'));
на денвере: string(2) "20"
на хостинге: string(1) "1"
Все ясно,это ограничения на хостинге , спасибо всем большое.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.