Как зделать upload нескольких файлов на сервер на пхп
Столкнулся вот с такой проблемой:
Подскажите как сделать upload нескольких файлов?
Условия такие:
Т.е. есть такой код:
Код:
<? echo"
<FORM ACTION="\additem.php\" NAME=\"data\" METHOD=POST ENCTYPE=\"multipart/form-data\">
$r=mysql_query("SELECT * FROM `tables_name` WHERE `parent_id`='$f'");
$tbl=mysql_fetch_array($r);
$r1=mysql_query("SELECT `tbl_fields` FROM `fields_name` WHERE `parent_id`='$f'");
$num=mysql_num_rows($r1);
$r3=mysql_query("SELECT * FROM $tbl[name]");
$j=0;
for($i=0;$i<$num;$i++)
{
$fields=mysql_fetch_array($r1);
$tmp="kart$i";
if(mysql_field_name($r3,$i+2)==$tmp)
{
echo"<TR><TD ALIGN=LEFT VALIGN=TOP>
$fields[tbl_fields]:
</TD><TD ALIGN=LEFT VALIGN=TOP>
<input type=hidden name='in[$j]' value='$i'>
<input type='checkbox' name='up[$i]' value='1'>
<input type='file' name='userfile[$i]'>
</TD></TR>";
$j++;
}
else
echo"<tr><td align=left valign=middle>$fields[tbl_fields]</td><td><textarea name='txt$i' value='' cols=50 rows=10></textarea></td>";
}
?>
<input type=hidden name='f' value='<?=htmlspecialchars($_REQUEST["f"])?>'>
<INPUT TYPE=HIDDEN NAME="p" VALUE='<?=htmlspecialchars($_REQUEST["p"])?>'>
<INPUT TYPE=HIDDEN NAME="j" VALUE='<?=$j?>'>
<BR><INPUT TYPE=SUBMIT name='add' VALUE="Добавить продукт">
<BR><A HREF='catalog.php?f=<?=htmlspecialchars($f)?>&p=<?=htmlspecialchars($_REQUEST["p"])?>'>Назад</A>
</FORM><?}?>
<FORM ACTION="\additem.php\" NAME=\"data\" METHOD=POST ENCTYPE=\"multipart/form-data\">
$r=mysql_query("SELECT * FROM `tables_name` WHERE `parent_id`='$f'");
$tbl=mysql_fetch_array($r);
$r1=mysql_query("SELECT `tbl_fields` FROM `fields_name` WHERE `parent_id`='$f'");
$num=mysql_num_rows($r1);
$r3=mysql_query("SELECT * FROM $tbl[name]");
$j=0;
for($i=0;$i<$num;$i++)
{
$fields=mysql_fetch_array($r1);
$tmp="kart$i";
if(mysql_field_name($r3,$i+2)==$tmp)
{
echo"<TR><TD ALIGN=LEFT VALIGN=TOP>
$fields[tbl_fields]:
</TD><TD ALIGN=LEFT VALIGN=TOP>
<input type=hidden name='in[$j]' value='$i'>
<input type='checkbox' name='up[$i]' value='1'>
<input type='file' name='userfile[$i]'>
</TD></TR>";
$j++;
}
else
echo"<tr><td align=left valign=middle>$fields[tbl_fields]</td><td><textarea name='txt$i' value='' cols=50 rows=10></textarea></td>";
}
?>
<input type=hidden name='f' value='<?=htmlspecialchars($_REQUEST["f"])?>'>
<INPUT TYPE=HIDDEN NAME="p" VALUE='<?=htmlspecialchars($_REQUEST["p"])?>'>
<INPUT TYPE=HIDDEN NAME="j" VALUE='<?=$j?>'>
<BR><INPUT TYPE=SUBMIT name='add' VALUE="Добавить продукт">
<BR><A HREF='catalog.php?f=<?=htmlspecialchars($f)?>&p=<?=htmlspecialchars($_REQUEST["p"])?>'>Назад</A>
</FORM><?}?>
Т.е. получается массив userfile[$i] и надо их загрузить на сервак.
У каго какие будут идеи, банадьные copy отказывается работать
Код:
$us_file=$userfile[$tmp];
copy($us_file, "../catalog/" . basename($us_file));
copy($us_file, "../catalog/" . basename($us_file));
пишет warning no such file or directory!!!
Заранее спасибо
пишет warning no such file or directory!!![/QUOTE]
Нормальным же языком сказано, что скрипт не может найти файл или директорию. Верный признак того что: либо пытаешь файл переместить в несуществующую директорию, либо нет прав на запись в директорию.
И еще. По хорошему нужно использовать не copy функцию, а move_uploaded_file.
[COLOR="Red"]Тема закрыта[/COLOR]
move_uploaded_file() (для этого случая она и создавалась), можно заменить copy() без переделок программы.
на будущее - иногда эта функция бывает отключена хостерами в целях безопасности, для сохранения upload-файлов следует использовать аналогичную
вовремя, вовремя...
вовремя, вовремя...[/QUOTE]
ой... ночью писал, ступил... :confused: