Файл: obmen/inc/upload_form.php
Строк: 243
<?
if ($dir_id['upload']==1){
if (isset($_GET['act']) && $_GET['act']=='upload' && $l!='/')
{
if (!isset($set['obmen_limit_up']) || $set['obmen_limit_up']<=$user['balls']){
echo "<form class='foot' enctype="multipart/form-data" action='?act=upload&ok&page=$page' method="post">";
echo "Файл:<br />n";
echo "<input name='file' type='file' maxlength='$dir_id[maxfilesize]' /><br />n";
echo "Скриншот:<br />n";
echo "<input name='screen' type='file' accept='image/*' /><br />n";
echo "Описание:<br />n";
echo "<textarea name='opis'></textarea><br />n";
echo "<input class="submit" type="submit" value="Выгрузить" /><br />n";
echo "*Разрешается выгружать файлы форматов: $dir_id[ras]<br />n";
echo "Размером до: ".size_file($dir_id['maxfilesize'])."<br />n";
echo "«<a href='?'>Отмена</a><br />n";
echo "</form>";
}
else
{
echo "Выгружать файлы в обменник могут только пользователи, набравшие $set[obmen_limit_up] и более баллов<br />n";
}
}
echo "<div class="foot">n";
echo "»<b><a href='?act=upload&page=$page'>Выгрузить файл</a></b><br />n";
if ( $set['obmen_import'] && isset($_GET['act']) && $_GET['act'] == 'import' && isset($user) && isset($_POST['file']) ) {
#
function get_mime_type($ext) {
$mime_types = array(
'ez' => 'application/andrew-inset',
'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'doc' => 'application/msword',
'bin' => 'application/octet-stream',
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => 'application/octet-stream',
'class' => 'application/octet-stream',
'so' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => 'application/pdf',
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'wbxml' => 'application/vnd.wap.wbxml',
'wmlc' => 'application/vnd.wap.wmlc',
'wmlsc' => 'application/vnd.wap.wmlscriptc',
'bcpio' => 'application/x-bcpio',
'vcd' => 'application/x-cdlink',
'pgn' => 'application/x-chess-pgn',
'cpio' => 'application/x-cpio',
'csh' => 'application/x-csh',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'spl' => 'application/x-futuresplash',
'gtar' => 'application/x-gtar',
'hdf' => 'application/x-hdf',
'js' => 'application/x-javascript',
'skp' => 'application/x-koan',
'skd' => 'application/x-koan',
'skt' => 'application/x-koan',
'skm' => 'application/x-koan',
'latex' => 'application/x-latex',
'nc' => 'application/x-netcdf',
'cdf' => 'application/x-netcdf',
'sh' => 'application/x-sh',
'shar' => 'application/x-shar',
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'sv4cpio' => 'application/x-sv4cpio',
'sv4crc' => 'application/x-sv4crc',
'tar' => 'application/x-tar',
'tcl' => 'application/x-tcl',
'tex' => 'application/x-tex',
'texinfo' => 'application/x-texinfo',
'texi' => 'application/x-texinfo',
't' => 'application/x-troff',
'tr' => 'application/x-troff',
'roff' => 'application/x-troff',
'man' => 'application/x-troff-man',
'me' => 'application/x-troff-me',
'ms' => 'application/x-troff-ms',
'ustar' => 'application/x-ustar',
'src' => 'application/x-wais-source',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => 'application/zip',
'7z' => 'application/7z',
'rar' => 'application/x-rar',
'gz' => 'application/gzip',
'au' => 'audio/basic',
'snd' => 'audio/basic',
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'kar' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => 'audio/mpeg',
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'm3u' => 'audio/x-mpegurl',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'wav' => 'audio/x-wav',
'pdb' => 'chemical/x-pdb',
'xyz' => 'chemical/x-xyz',
'bmp' => 'image/bmp',
'gif' => 'image/gif',
'ief' => 'image/ief',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'png' => 'image/png',
'tiff' => 'image/tiff',
'tif' => 'image/tif',
'djvu' => 'image/vnd.djvu',
'djv' => 'image/vnd.djvu',
'wbmp' => 'image/vnd.wap.wbmp',
'ras' => 'image/x-cmu-raster',
'pnm' => 'image/x-portable-anymap',
'pbm' => 'image/x-portable-bitmap',
'pgm' => 'image/x-portable-graymap',
'ppm' => 'image/x-portable-pixmap',
'rgb' => 'image/x-rgb',
'xbm' => 'image/x-xbitmap',
'xpm' => 'image/x-xpixmap',
'xwd' => 'image/x-windowdump',
'igs' => 'model/iges',
'iges' => 'model/iges',
'msh' => 'model/mesh',
'mesh' => 'model/mesh',
'silo' => 'model/mesh',
'wrl' => 'model/vrml',
'vrml' => 'model/vrml',
'css' => 'text/css',
'html' => 'text/html',
'htm' => 'text/html',
'asc' => 'text/plain',
'txt' => 'text/plain',
'php' => 'text/plain',
'cgi' => 'text/plain',
'pl' => 'text/plain',
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'sgml' => 'text/sgml',
'sgm' => 'text/sgml',
'tsv' => 'text/tab-seperated-values',
'wml' => 'text/vnd.wap.wml',
'wmls' => 'text/vnd.wap.wmlscript',
'wmlsc' => 'application/vnd.wap.wmlscriptc',
'etx' => 'text/x-setext',
'xml' => 'text/xml',
'xsl' => 'text/xml',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'mxu' => 'video/vnd.mpegurl',
'avi' => 'video/x-msvideo',
'movie' => 'video/x-sgi-movie',
'3gp' => 'video/3gpp',
'mp4' => 'video/mp4',
'flv' => 'video/flv',
'mms' => 'application/vnd.wap.mms-message',
'rmf' => 'audio/rmf',
'sis' => 'application/vnd.symbian.install',
'sisx' => 'application/vnd.symbian.install',
'jar' => 'application/java-archive',
'jad' => 'text/vnd.sun.j2me.app-descriptor',
'ics' => 'text/calendar',
'vcs' => 'text/x-vcalendar',
'vcf' => 'text/x-vcard',
'emy' => 'text/x-emelody',
'imy' => 'text/x-imelody',
'hid' => 'application/x-tar',
'mmf' => 'application/vnd.smaf',
'mpc' => 'application/vnd.mophun.certificate',
'mpn' => 'application/vnd.mophun.application',
'thm' => 'application/vnd.eri.thm',
'tpl' => 'application/vnd.sonyericsson.mms-template',
'ice' => 'x-conference-xcooltalk',
'ico' => 'image/favicon.ico'
);
return isset($mime_types[$ext]) ? $mime_types[$ext] : 'application/octet-stream';
}
#
$file = trim(stripslashes($_POST['file']));
$name = trim(stripslashes($_POST['name']));
$screen = trim(stripslashes($_POST['screen']));
$opis = mysql_real_escape_string(trim(stripslashes($_POST['opis'])));
$file_de = urldecode($file);
if ( preg_match('~^http://[a-z0-9.-]+.[a-z]{2,}/[a-z0-9.?=,/s-_]+$~i', $file_de) && preg_match('~(.*?).[a-z0-9]+$~i', $name) ) {
/*
if ( preg_match('~^http://[a-z0-9.?=&]+$~i', $file) && preg_match('~(.*?).[a-z0-9]+$~i', $name) ) {
*/
$file = file_get_contents($file);
if ( $file ) {
$name2 = preg_replace('~.[^.]*$~i', null, $name); // имя файла без расширения
$ras = strtolower(preg_replace('~^.*.~i', null, $name));
$type = get_mime_type($ras);
$rasss = explode(';', $dir_id['ras']);
$ras_ok=false;
$count = count($rasss);
for ( $i = 0; $i < $count; $i++ )
if ( $rasss[$i] != NULL && $ras == $rasss[$i] ) $ras_ok = true;
if ( $ras_ok ) {
mysql_query("INSERT INTO `obmennik_files` (`id_dir`, `name`, `ras`, `type`, `size`, `time`, `time_last`, `id_user`, `opis` )
VALUES ('$dir_id[id]', '".mysql_real_escape_string($name2)."', '".mysql_real_escape_string($ras)."', '".mysql_real_escape_string($type)."', '".mysql_real_escape_string($size)."', '$time', '$time', '$user[id]', '".mysql_real_escape_string($opis)."' )");
$id_file=mysql_insert_id();
file_put_contents(H."sys/obmen/files/$id_file.dat", $file);
$size = filesize(H."sys/obmen/files/$id_file.dat");
mysql_query("update `obmennik_files` set `size`='".$size."' where `id`='".$id_file."' limit 1;");
$link = 'http://'.$_SERVER['SERVER_NAME'].'/obmen'.$dir_id['dir'].urlencode($name).'.'.$ras.'&showinfo';
$link = mysql_real_escape_string('Добавил'.( $user['pol'] == 0 ? 'а' : '' ).' <a href="'.$link.'">файл</a> в обменнике');
mysql_query("insert into `frends_news_line` set `uid`='".$user['id']."', `date`='".$time."', `link`='".$link."';");
mysql_query("update `user` set `balls`=`balls`+1 where `id`='".$user['id']."' limit 1;");
if ( !empty($screen) && preg_match('~^http://[a-z0-9.-]+.[a-z]{2,}/[a-z0-9.?=,/]+$~i', $screen) ) {
$imgc = imagecreatefromstring(file_get_contents($screen));
if ( $imgc ) {
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x==$img_y)
{
$dstW=128; // ширина
$dstH=128; // высота
}
elseif ($img_x>$img_y)
{
$prop=$img_x/$img_y;
$dstW=128;
$dstH=ceil($dstW/$prop);
}
else
{
$prop=$img_y/$img_x;
$dstH=128;
$dstW=ceil($dstH/$prop);
}
$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagedestroy($imgc);
$screen=img_copyright($screen); // наложение копирайта
imagegif($screen,H."sys/obmen/screens/128/$id_file.gif");
imagedestroy($screen);
}
}
}
else {
$err='Неверное расширение файла';
unset($file);
}
}
else $err[] = 'Файл не был импортирован';
}
else $err[] = 'Некорректный адрес';
}
echo "</div>n";
}
?>