Upload определенных файлов на сервер

  • Автор темы Автор темы AdiM
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

AdiM

Guest
Upload определенных файлов на сервер

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

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// standard session management
$userdata = session_pagestart($user_ip, PAGE_TEMPLATE);
init_userprefs($userdata);

// set page title
$page_title = 'Закачка файлов';

// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// assign template
$template->set_filenames(array(
'body' => 'up.tpl')
);

$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "./pic/";
$upload_url = $url_dir."./pic/";
$message ="";

//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("../pic")) {
die ("дериктория для закачек не существует");
}

if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
else {
$message = "";
}

function do_upload($upload_dir, $upload_url) {

$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") {
$message = "Не подходящее имя файла";
return $message;
}
//File Size Check
else if ( $file_size > 1000000) {
$message = "Размер файла превышает 1 Mb.";
return $message;
}
//File Type Check
else if ( $file_type == "text/plain" ) {
$message = "Извните, но тектовые файлы закачивать запрещено!" ;
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
$message = ($result)?"Адрес к файлу: <a href=$file_url>$file_url</a>" :
"Чтот случилось с закачаным файлом.";
return $message;
}

// get file list and create output
$tehfilelist = '';
$the_array = Array();
$handle = opendir('../pic/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$the_array[] = $file;
}
}
closedir($handle);
sort ($the_array);
reset ($the_array);
while (list ($key, $val) = each ($the_array)) {
$tehoutput .= "<a href=../cool/$val>$val</a><br>
http://localhost/pic/$val<br><br>";
}

// variables (Ed 31/12/2004)
$template->assign_vars(array(
'PTITLE' => 'Закачака файлов',
'OUTPUT' => $tehoutput,
'MESSAGE' => $message,
) );

$template->pparse('body');

// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
 
ПОИСК
недавно была тема
проверяй расширение файлов
во народ ленивый пошел - даже поиском лень пользоваться

-~{}~ 11.04.05 20:32:

http://phpclub.ru/talk/search.php?s=&action=showresults&searchid=536083&sortby=after&sortorder=descending
 
вот так можно..??

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// standard session management
$userdata = session_pagestart($user_ip, PAGE_TEMPLATE);
init_userprefs($userdata);

// set page title
$page_title = 'Закачка файлов';

// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// assign template
$template->set_filenames(array(
'body' => 'up.tpl')
);

$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "./pic/";
$upload_url = $url_dir."./pic/";
$message ="";

//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("../pic")) {
die ("дериктория для закачек не существует");
}

if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
else {
$message = "";
}

function do_upload($upload_dir, $upload_url) {

$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") {
$message = "Не подходящее имя файла";
return $message;
}
//File Name Check
if ( $file_name =="") {
$message = "Не подходящее имя файла";
return $message;
}
//File Size Check
else if ( $file_size > 1000000) {
$message = "Размер файла превышает 1 Mb.";
return $message;
}
//File Type Check
function getImageType($filename) {
if (preg_match('!\.(jpg|jpeg)$!si',$filename)) {
return 'Jpeg';
} else if (preg_match('!\.gif$!si',$filename)) {
return 'Gif';
} else if (preg_match('!\.png$!si',$filename)) {
return 'Png';
}
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
$message = ($result)?"Адрес к файлу: <a href=$file_url>$file_url</a>" :
"Чтот случилось с закачаным файлом.";
return $message;
}

// get file list and create output
$tehfilelist = '';
$the_array = Array();
$handle = opendir('../pic/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$the_array[] = $file;
}
}
closedir($handle);
sort ($the_array);
reset ($the_array);
while (list ($key, $val) = each ($the_array)) {
$tehoutput .= "<a href=../cool/$val>$val</a><br>
http://localhost/pic/$val<br><br>";
}

// variables (Ed 31/12/2004)
$template->assign_vars(array(
'PTITLE' => 'Закачака файлов',
'OUTPUT' => $tehoutput,
'MESSAGE' => $message,
) );

$template->pparse('body');

// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

-~{}~ 11.04.05 21:51:

т.е в место

}
//File Type Check
else if ( $file_type == "text/plain" ) {
$message = "Извните, но тектовые файлы закачивать запрещено!" ;
return $message;
}

СТАЛО
}
//File Type Check
function getImageType($filename) {
if (preg_match('!\.(jpg|jpeg)$!si',$filename)) {
return 'Jpeg';
} else if (preg_match('!\.gif$!si',$filename)) {
return 'Gif';
} else if (preg_match('!\.png$!si',$filename)) {
return 'Png';
}
return $message;
}
 
Поддерживаю насчет "оборзели". Правила вроде и не для них....
 
AdiM
кто тебе сказал что все щас ломанулись тестить твой код ????
пробуй сам а потом говори что не получается...
никто проверять твой код за тебя не будет!!!
 
Тема закрыта.

Формулируйте вопрос так, чтобы его могли понять не только Вы.
Не пишите больше 10-15 строк кода.
Никто не будет вникать в Ваш код длиной 100 строк.
Правила форума: http://phpclub.ru/talk/announcement.php?s=&forumid=12

-~{}~ 11.04.05 22:08:

AdiM
будь добр постить не весь скрипт, а только ту часть, которой касается твой вопрос.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху