Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 02.05.2012, 18:46   #1
Заблокирован
 Разведчик
Аватар для Getsuga =)
 
Getsuga =) никому не известный тип
Регистрация: 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пасибо:
Logan22 (03.05.2012)
Старый 03.05.2012, 23:30   #2
 Разведчик
Аватар для L1nc0ln
 
L1nc0ln на правильном путиL1nc0ln на правильном пути
Регистрация: 04.03.2012
Сообщений: 12
Популярность: 177
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 12 сообщениях
 
По умолчанию Re: Загрузка файла на сервер или свой простой файлообменник

вот такая ошибочка. в чём дело?
это когда нажимаю загрузить
Изображения
Тип файла: jpg Безымянный.JPG (30.1 Кб, 86 просмотров)
  Ответить с цитированием
Старый 04.05.2012, 00:02   #3
 Разведчик
Аватар для Qwert1x
 
Qwert1x никому не известный тип
Регистрация: 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
Заблокирован
 Разведчик
Аватар для Getsuga =)
 
Getsuga =) никому не известный тип
Регистрация: 19.04.2012
Сообщений: 24
Популярность: 5
Сказал(а) спасибо: 9
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Загрузка файла на сервер или свой простой файлообменник

Цитата:
Сообщение от L1nc0lnПосмотреть сообщение
это когда нажимаю загрузить

Файл upload.php нужно закинуть в папку temp
  Ответить с цитированием
Старый 04.05.2012, 12:33   #5
 Разведчик
Аватар для Qwert1x
 
Qwert1x никому не известный тип
Регистрация: 14.11.2010
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Загрузка файла на сервер или свой простой файлообменник

Цитата:
Сообщение от Getsuga =)Посмотреть сообщение
Файл upload.php нужно закинуть в папку temp

файл upload.php не нужно закидывать в папку temp, потому что он должен лежать рядом с html файлом, согласно вашему коду:
Цитата:
<form action="upload.php" method="post" enctype="multipart/form-data">

Часть ответа на проблему дана постом выше.
P.S. папка temp должна быть создана заранее
  Ответить с цитированием
Старый 03.08.2012, 15:37   #6
 Разведчик
Аватар для MasiZ
 
MasiZ никому не известный тип
Регистрация: 03.08.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Загрузка файла на сервер или свой простой файлообменник

Все супер и понятно. Вопрос, а можно как запретить заливку файлов с двумя расширениями? К примеру: ТХТ и exe? А любые другие чтоб можно было заливать.
  Ответить с цитированием
Старый 16.08.2012, 13:03   #7
Заблокирован
 Разведчик
Аватар для Metro Berlin
 
Metro Berlin никому не известный тип
Регистрация: 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;

      }

    } 
Поменять расширение или замаскировать файл под другой формат нетрудно. А вот пройти такую проверку гораздо сложнее.

Полностью кодом помоч не могу. Может сам догадаешься и поделишься со всеми
  Ответить с цитированием
Ответ

Метки
загрузить, обменник, сервер, файл, файлы


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Подсказка] Делаем свой сервер красивей или как установить плагины на сервер[+плагины] [FC]ZENIT Прочий софт для Counter-Strike 3 01.04.2012 13:34
[Помогите!] Загрузка файла из интернета Annedroid Вопросы и ответы, обсуждения 3 12.02.2012 22:41
[Обсуждение] А у Вас свой сервер, у друга пашет рега и сервер пв mushketer Вопросы и ответы, обсуждения 4 13.03.2011 16:42

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 03:52.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net