|
02.05.2012, 18:46
|
#1
|
|
|
|
Разведчик
|
Регистрация: 19.04.2012
Сообщений: 24
Популярность: 5
Сказал(а) спасибо: 9
Поблагодарили 3 раз(а) в 3 сообщениях
|
Загрузка файла на сервер или свой простой файлообменник
Здравствуйте, уважаемые пользователи!
Сегодня я расскажу, сделать свой файлообменник, используя только html и php.
Начнем
Открываем обычный, всеми знакомый, блокнот
Вставляем этот html код:
Код:
<html>
<head>
<title>Загрузка файлов</title>
</head>
<body>
<h2><b>Форма для загрузки файлов</b></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br />
<input type="submit" value="Загрузить"><br />
</form>
</body>
</html>
Немного объясню для тех, кто не шарит.
Код:
<title>Загрузка файлов</title>
Этот тег нужен для поисковиков. В нем можно написать что угодно.
Код:
<input type="file" name="filename"><br />
<input type="submit" value="Загрузить"><br />
Форма выбора файла и кнопка "загрузить" (можете заменить)
|
Цитата: |
|
|
|
|
|
|
|
|
<form action="upload.php" method="post" enctype="multipart/form-data"> |
|
|
|
|
|
Это чуть позже
Вот мы вставили код, теперь сохраняем файл с расширением HTML
Должно быть так:
index.html
__________________________________________________ ________
Далее, открываем снова блокнот, но вставляем уже другой код:
Код:
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if (copy($_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
{
echo "Файл успешно загружен!";
}
else
{
echo "Ошибка загрузки файла";
}
?>
</body>
</html>
Немного разберем код
Код:
{
echo "Ошибка загрузки файла";
}
То, что будет писать, если файл не удалось загрузить.
Код:
{
echo "Файл успешно загружен!";
}
То, что будет писать, если файл удалось загрузить.
Код:
<title>Результат загрузки файла</title>
Опять же для поисковиков
_________________________________________________
Немного назад:
|
Цитата: |
|
|
|
|
|
|
|
|
<form action="upload.php" method="post" enctype="multipart/form-data"> |
|
|
|
|
|
Вот это то, на что будет опираться наш index.html
_________________________________________________
Код:
<?php
if (copy($_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
/temp - где будет php файл.
_________________________________________________
Модифицируем php файл
Код:
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if (copy($_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
{
echo "Файл успешно загружен!";
//далее выводится информация о файле
echo "<br />Характеристика файла: ";
echo "<br />Имя файла: ";
echo $_FILES['filename']['name'];
echo "<br />Размер файла: ";
echo $_FILES['filename']["size"];
echo "<br />Каталог для загрузки: ";
echo $_FILES['filename']["tmp_name"];
echo "<br />Тип файла :";
echo $_FILES['filename']["type"];
}
else
{
echo "Ошибка загрузки файла";
}
?>
</body>
</html>
Заменяем наш php фАйл этим кодом.
После загрузки, он покажет что, куда, каким размером загружено
_______________________________________________
Теперь, как сделать файлообменник:
Я делал так:
Код:
echo "<br />Имя файла: ";
Менял это на:
Код:
echo "<br />ссылка на файл:http://sitename.ru/temp";
И получался как бы МИНИ файлообменник
Теперь смохраняем наш файл с расширением php
И называем его upload
Кидаем файл index.html на наш сервер
Создаем папку temp и кидаем туда upload.php
Пробуем
Писал от руки, будут ошибки, пишите!
Специально для zhyk.ru! при копировании указывайте обратную ссылку! уважайте чужой труд!
|
|
|
Пользователь сказал cпасибо:
|
|
03.05.2012, 23:30
|
#2
|
|
|
|
Разведчик
|
Регистрация: 04.03.2012
Сообщений: 12
Популярность: 177
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 12 сообщениях
|
Re: Загрузка файла на сервер или свой простой файлообменник
вот такая ошибочка. в чём дело?
это когда нажимаю загрузить
|
|
|
04.05.2012, 00:02
|
#3
|
|
|
|
Разведчик
|
Регистрация: 14.11.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Загрузка файла на сервер или свой простой файлообменник
1. L1nc0ln, чтоб работали php файлы, надо залить их на хостинг, или поднять/поставить на домашний ПК веб-сервер (apache / nginx + php)
2. Не хочу показаться грубым, поэтому спасибо Getsuga =) за статью. Она полезна для новичков, но НЕ используйте данный скрипт на реальном сайте. Потому что банальный загруженный файлик php покажет всё ваше добро в папке:
PHP код:
<?php
print_r(scandir("."));
?>
Последний раз редактировалось Qwert1x; 04.05.2012 в 00:19.
|
|
|
04.05.2012, 08:11
|
#4
|
|
|
|
Разведчик
|
Регистрация: 19.04.2012
Сообщений: 24
Популярность: 5
Сказал(а) спасибо: 9
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Загрузка файла на сервер или свой простой файлообменник
|
|
|
04.05.2012, 12:33
|
#5
|
|
|
|
Разведчик
|
Регистрация: 14.11.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Загрузка файла на сервер или свой простой файлообменник
|
|
|
03.08.2012, 15:37
|
#6
|
|
|
|
Разведчик
|
Регистрация: 03.08.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Загрузка файла на сервер или свой простой файлообменник
Все супер и понятно. Вопрос, а можно как запретить заливку файлов с двумя расширениями? К примеру: ТХТ и exe? А любые другие чтоб можно было заливать.
|
|
|
16.08.2012, 13:03
|
#7
|
|
|
|
Разведчик
|
Регистрация: 11.08.2012
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 3
Поблагодарили 1 раз в 1 сообщении
|
Re: Загрузка файла на сервер или свой простой файлообменник
MasiZ, Вот например как идет проверка в джумле:
PHP код:
$xss_check = JFile::read($file['tmp_name'],false,256);
$html_tags = array('abbr','acronym','address','applet','area','audioscope','base', 'basefont','bdo','bgsound','big','blackface','blink','blockquote','body', 'bq','br','button','caption','center','cite','code','col','colgroup','comment','custom','dd', 'del','dfn','dir','div','dl','dt','em','embed','fieldset','fn','font','form','frame','frameset','h1', 'h2','h3','h4','h5','h6','head','hr','html','******','ilayer','img','input','ins','isindex','******', 'kbd','label','layer','legend','li','limittext','link','listing','map','marquee','menu','meta', 'multicol','nobr','noembed','noframes','noscript','nosmartquotes','object','ol','optgroup', 'option','param','plaintext','pre','rt','ruby','s','samp','script','select','server','shadow','sidebar', 'small','spacer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot', 'th','thead','title','tr','tt','ul','var','wbr','xml','xmp','!DOCTYPE', '!--');
foreach($html_tags as $tag) {
// A tag is '<tagname ', so we need to add < and a space or '<tagname>'
if(stristr($xss_check, '<'.$tag.' ') || stristr($xss_check, '<'.$tag.'>')) {
$err = 'WARNIEXSS';
return false;
}
}
Поменять расширение или замаскировать файл под другой формат нетрудно. А вот пройти такую проверку гораздо сложнее.
Полностью кодом помоч не могу. Может сам догадаешься и поделишься со всеми
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:57.
|
|