04 Июн 2009 @ 5:56 ДП 

Понадобилось создать форму для отправки файла на сервер в нужную мне папку и записью имени файла в базу данных.. Долго мучался, но всё оказалось просто.

Вот, собственно, код:

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>
<html xmlns=»http://www.w3.org/1999/xhtml»>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=windows-1251″ />
<title>Upload file</title>
</head>

<body>
<?php
if (isset ($pattern_link))
{
$uploadfile = basename($_FILES['pattern_link']['name']);

print «<pre>»;
if (move_uploaded_file($_FILES['pattern_link']['tmp_name'],’../uploads/’.$uploadfile))
{
print «File is valid, and was successfully uploaded. «;
print «Here’s some more debugging info:\n»;
print_r($_FILES);
}
else
{
print «Possible file upload attack!  Here’s some debugging info:\n»;
print «Possible file upload attack!  Дополнительная отладочная информация:\n»;
print_r($_FILES);
}
print «</pre>»;

echo ‘<form enctype=»multipart/form-data» action=»" method=»post»>’;
echo ‘Отправить этот файл: <input name=»pattern_link» type=»file» />’;
echo ‘<input type=»submit» value=»Отправить файл» />’;
echo ‘</form>’;

echo $_FILES['pattern_link']['name'];
}
else
{
echo ‘<form enctype=»multipart/form-data» action=»" method=»post»>’;
echo ‘Отправить этот файл: <input name=»pattern_link» type=»file» />’;
echo ‘<input type=»submit» value=»Отправить файл» />’;
echo ‘</form>’;
}

?>

</body>
</html>

В теге <input> задал параметр name=»pattern_link», соответственно, все остальные действия происходят с данными, отмеченными этим именем, и его можно менять на любое допустимое по своему усмотрению.

Основное же действие (сохранение файла в нужную папку) описано в следующей части кода:

if (isset ($pattern_link))
{
$uploadfile = basename($_FILES['pattern_link']['name']);

print «<pre>»;
if (move_uploaded_file($_FILES['pattern_link']['tmp_name'],’../uploads/’.$uploadfile))

Здесь ‘../uploads/’ — это и есть та папка, в которую хочется поместить файл, а далее описано его имя, которое совпадет с именем файла на компьютере пользователя.

Естественно, лишний текст типа

print «File is valid, and was successfully uploaded. «;
print «Here’s some more debugging info:\n»;
print_r($_FILES);

при необходимости можно убрать. Значения для вноса в базу данных выбрать не трудно, так что на этом пока всё.

Posted By: Дэ
Last Edit: 04 Июн 2009 @ 05:58 ДП

EmailPermalink
Tags
Tags: ,
Categories: work


 

Responses to this post » (None)

 

 Last 50 Posts
avatar
Change Theme...
  • Users » 1005
  • Posts/Pages » 33
  • Comments » 6
Change Theme...
  • VoidVoid
  • LifeLife « Default
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight