|
|
|
| Вот форма:
<form action=upload_2.php method=post enctype=multipart/form-data>
Имя файла: <input name="userfile[]" type="file"><br>
Имя файла: <input name="userfile[]" type="file"><br>
<input type=submit value='Закачать'>
</form>
|
Вот скрипт:
<?
$dir = "../local/";
foreach($userfile as $key=>$value)
{
echo $_FILES['userfile']['tmp_name']['$key'];
//echo $key.'=>'.$value.'<br>';
if(is_uploaded_file($_FILES['userfile']['tmp_name']['$key']))
{
$res = move_uploaded_file($_FILES['userfile']['tmp_name']['$key'], $dir.$_FILES['userfile']['name']['$key']);
echo "Файл успешно закачан в ".$dir.$_FILES["userfile"]["name"];
}
else echo "Ошибка записи файла!";
}
?>
|
Не пойму в чем ошибка, может есть другие варианты. Я в этом вообще мало разбираюсь, так что помогите, что я не так передаю. | |
|
|
|
|
|
|
|
для: worker
(16.09.2005 в 18:17)
| | Так а вы подставляёте вместо $userfile $_FILES['userfile']['tmp_name']
<?
$dir = "../local/";
foreach($_FILES['userfile']['tmp_name'] as $key=>$value)
{
echo $value;
//echo $key.'=>'.$value.'<br>';
if(is_uploaded_file($value))
{
$res = move_uploaded_file($value, $dir.$_FILES['userfile']['name']['$key']);
echo "Файл успешно закачан в ".$dir.$_FILES["userfile"]["name"]['$key'];
}
else echo "Ошибка записи файла!";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.09.2005 в 19:34)
| | Вы конечно всё верно сказали, но у меня выдает ошибку:
C:\WINDOWS\TEMP\php34.tmp
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\TEMP\php34.tmp' to '' in H:\www\administrator_page\my_php_book\chapter16\162\upload_2.php on line 9
Ошибка записи файла!
|
Хотя как Вы понимаете все права на запись в эту дирректорию даны | |
|
|
|
|
|
|
|
для: worker
(16.09.2005 в 21:13)
| | Он почему-то собака считает, что $dir.$_FILES['userfile']['name']['$key'] - пустая строка, попробуйте вывести дамп массива $_FILES
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>
|
В нём имена есть? Выведите также значение $key - в него значения ключей вводятся? | |
|
|
|
|
|
|
|
для: cheops
(16.09.2005 в 21:41)
| | Выдает вот такую занятную штуку, очень интересная штука:
Array
(
[userfile] => Array
(
[name] => Array
(
[0] => 123.jpg
[1] =>
)
[type] => Array
(
[0] => image/pjpeg
[1] =>
)
[tmp_name] => Array
(
[0] => C:\WINDOWS\TEMP\php98.tmp
[1] =>
)
[error] => Array
(
[0] => 0
[1] => 4
)
[size] => Array
(
[0] => 45734
[1] => 0
)
)
)
|
| |
|
|
|
|
|
|
|
для: worker
(16.09.2005 в 22:28)
| | Переписываю для наглядности и смотрю результат:
<?
$dir = "../162/";
foreach($_FILES['userfile']['tmp_name'] as $key=>$value)
{
echo '<br>ключ '.$key;
echo '<br>масив '.$value;
echo '<br>масив файла:'.is_uploaded_file($value).'-'.$key;
echo move_uploaded_file($value, $dir.$_FILES['userfile']['name'].$key);
echo "<br>Файл успешно закачан в ".$dir.$_FILES["userfile"]["name"].$key;
}
?>
|
И вижу вот такой вывод:
ключ 0
масив C:\WINDOWS\TEMP\phpE3.tmp
масив файла:1-01
Файл успешно закачан в ../162/Array0
ключ 1
масив C:\WINDOWS\TEMP\phpE4.tmp
масив файла:1-11
Файл успешно закачан в ../162/Array1
|
Хмм... так в чем же дело, почему он не переименовывает загруженные файлы их собственными именами. мда... | |
|
|
|
|
|
|
|
для: worker
(16.09.2005 в 23:00)
| | Я даже в инете искал подобный скрипт, но почему-то не нашел, странно.... | |
|
|
|
|
|
|
|
для: worker
(16.09.2005 в 22:28)
| | Так а у вас же только один файл - видите второй элемент пустой - проверяйте в цикле - не является ли очередной элмемент массива пустышкой. | |
|
|
|
|
|
|
|
для: cheops
(17.09.2005 в 01:21)
| | Дак а вы гляньте на последний скрипт, там я передаю 2 файла, и оба загружаются с именами Array0 и Array1 ну а почему не натуральные имена приходят ???? | |
|
|
|
|
|
|
|
для: worker
(17.09.2005 в 02:32)
| | Так а почему вы используете
<?php
$dir.$_FILES['userfile']['name'].$key
?>
|
вместо
<?php
$dir.$_FILES['userfile']['name'][$key]
?>
|
$_FILES['userfile']['name'] - это массив, поэтому у вас в результате получаются Array0 и Array1. | |
|
|
|
|
|
|
|
для: cheops
(17.09.2005 в 12:48)
| | Большое спасибо, вот я идиот, я ['$key'] заключал в кавычки, соответственно он не работал. вот спасибо.
вот мои скриты, может кому сгодится, т.к. я в инете искал так и не нашел.
Форма загрузки
<form action=up.php method=post enctype=multipart/form-data>
Имя файла: <input name="userfile[]" type="file"><br>
Имя файла: <input name="userfile[]" type="file"><br>
Имя файла: <input name="userfile[]" type="file"><br>
Имя файла: <input name="userfile[]" type="file"><br>
<input type=submit value='Закачать'>
</form>
|
и скрипт обработки up.php :
<?
$dir = "../999/";
foreach($_FILES['userfile']['tmp_name'] as $key=>$value)
{
if(empty($value)) break;
is_uploaded_file($value);
move_uploaded_file($value, $dir.$_FILES['userfile']['name'][$key]);
echo "<br>Файл успешно закачан в ".$dir.$_FILES["userfile"]["name"][$key];
}
?>
|
Чеопсу ОГРОМНАЯ БЛАГОДАРНОСТЬ, уже в который раз. | |
|
|
|
|
|
|
|
для: worker
(17.09.2005 в 15:15)
| | В русской транслитации лучше использовать вариант Хеопс, а не Чеопс :))) | |
|
|
|