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

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

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);

?>
 

DimbIch

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

-~{}~ 11.04.05 20:32:

http://phpclub.ru/talk/search.php?s=&action=showresults&searchid=536083&sortby=after&sortorder=descending
 

AdiM

Guest
вот так можно..??

<?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;
}
 

sakon

П..и.н..ок
Поддерживаю насчет "оборзели". Правила вроде и не для них....
 

DimbIch

Новичок
AdiM
кто тебе сказал что все щас ломанулись тестить твой код ????
пробуй сам а потом говори что не получается...
никто проверять твой код за тебя не будет!!!
 

Фанат

oncle terrible
Команда форума
Тема закрыта.

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

-~{}~ 11.04.05 22:08:

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