Просмотр файла modules/share/add_file.php

Размер файла: 5.5Kb
  1. <?php
  2. /**********************************
  3. * @package: PerfCMS *
  4. * @year: 2012 *
  5. * @author: Artas *
  6. * @link: http://perfcms.ru *
  7. **********************************/
  8. $locate = 'in_share';
  9. if(!isset($user) || !isset($_GET['cat_id'])) { header('Location:/'); }
  10. if($db->query("SELECT * FROM `share_c` WHERE `id` = '". $_GET['cat_id'] ."'")->rowCount() == 0) {
  11. header('Location:/share/');
  12. exit;
  13. }
  14. if(isset($_POST['add']) && $_GET['act'] == 'add') {
  15. $file_dir = ROOT .'/files/share/';
  16. $screen_dir = ROOT .'/files/preview/';
  17. if ($_FILES['file']['tmp_name']) {
  18. if(!empty($_POST['name'])) {$file_name = mb_substr(escape($_POST['name']), 0, 55);} else { $err = 'Name is empty'; }
  19. if(!empty($_POST['about'])) {$file_text = mb_substr(escape($_POST['about']), 0, 5000);} else { $err = 'Text is empty'; }
  20. $patch = pathinfo($_FILES['file']['name']);
  21. if (!in_array($patch['extension'], explode(';', $system['files_types']))) { $err = 'File extention not allowed.<br />'; }
  22. $name_start = cyrlat($patch['filename']);
  23. $name_short = trim($name_start).time();
  24. $name_end = mb_convert_encoding($name_short, "UTF-8");
  25. $name = 'perfcms_'.$name_end.'.'. $patch['extension'];
  26. if (file_exists($file_dir . $name)) { $err = 'This file exists<br />'; }
  27. if($_FILES['screen']['tmp_name']) {
  28. $screenp = pathinfo($_FILES['screen']['name']);
  29. if (!in_array($screenp['extension'], explode(';', $system['files_types']))) { $err = 'File extention not allowed.<br />'; }
  30. move_uploaded_file($_FILES['screen']['tmp_name'], $screen_dir . $name .'.png');
  31. }
  32. if(!isset($err)) {
  33. move_uploaded_file($_FILES['file']['tmp_name'], $file_dir . $name);
  34. if (empty($file_name)) $file_name = str_replace('.'. $patch['extension'], '', $patch['basename']);
  35. $db->query("INSERT INTO `share_files` SET `time` = '". time() ."', `name` = '". input($file_name) ."', `size` = '". $_FILES['file']['size'] ."', `path_name` = '". $name."', `ext` = '$patch[extension]', `path` = '$file_dir', `user_id` = '". $user['id'] ."', `text` = '". input($file_text) ."', `cat_id` = '". $_GET['cat_id'] ."', `moderate` = '0'");
  36. // print_r($db->errorInfo());
  37. header('Location:/share/file/'. $db->lastInsertId() .'/');
  38. } else { echo $err; }
  39. }
  40. }
  41. elseif(isset($_POST['import']) && $_GET['act'] == 'import') {
  42. $file_dir = ROOT .'/files/share/';
  43. if (!empty($_POST['file'])) {
  44. if(!empty($_POST['name'])) {
  45. $file_name = mb_substr(escape($_POST['name']), 0, 55);
  46. }
  47. else {
  48. $err = 'Name is empty';
  49. }
  50. if(!empty($_POST['about'])) {
  51. $file_text = mb_substr(escape($_POST['about']), 0, 5000);
  52. }
  53. else {
  54. $err = 'Text is empty';
  55. }
  56. $urlinfo = pathinfo(parse_url(input($_POST['file']),PHP_URL_PATH));
  57. $name = 'perfcms_'.cyrlat($urlinfo['filename']).time().'.'.$urlinfo['extension'];
  58. if (file_exists($file_dir . $name)) { $err = 'This file exists<br />'; }
  59. copy(input($_POST['file']), ROOT.'/files/share/'.$name);
  60. $filesize = filesize(ROOT.'/files/share/'.$name);
  61. if(!isset($err)) {
  62. if (empty($file_name)) $file_name = $name;
  63. $db->query("INSERT INTO `share_files` SET `time` = '". time() ."', `name` = '". input($file_name) ."', `size` = '". $filesize ."', `path_name` = '". $name."', `ext` = '$urlinfo[extension]', `path` = '$file_dir', `user_id` = '". $user['id'] ."', `text` = '". input($file_text) ."', `cat_id` = '". $_GET['cat_id'] ."', `moderate` = '0'");
  64. // print_r($db->errorInfo());
  65. header('Location:/share/file/'. $db->lastInsertId() .'/');
  66. } else { echo $err; }
  67. }
  68. }
  69. if(isset($_GET['type']) && $_GET['type'] == 'import') {
  70. $title = $lang->word('import');
  71. require_once(SYS.'/view/header.php');
  72. $tpl->div('title', $lang->word('import'));
  73. echo '<form action="/share/add_file/'. $_GET['cat_id'] .'/?act=import" method="post">
  74. <div class="menu">
  75. <b>'. $lang->word('name') .'</b>:<br/>
  76. <input type="text" name="name" /><br/>
  77. <b>'. $lang->word('import_adress') .'</b>:<br/>
  78. <input name="file" type="text" value="http://"/><br/>
  79. <b>'. $lang->word('about') .'</b>:<br/>
  80. <textarea name="about" rows="5" cols="26"></textarea><br/>
  81. <input name="import" type="submit" value="'. $lang->word('import') .'" /><br/>
  82. </div>
  83. </form>';
  84. $tpl->div('block', img('upload.png'). '<a href="/share/add_file/'. $_GET['cat_id'] .'/">'.$lang->word('upload').'</a><br/>'. NAV .'<a href="/share/">'. $lang->word('share') .'</a><br/>' . HICO .'<a href="/">'. $lang->word('home').'</a>');
  85. require_once(SYS.'/view/footer.php');
  86. exit;
  87. }
  88. $title = $lang->word('add_file');
  89. require_once(SYS.'/view/header.php');
  90. $tpl->div('title', $lang->word('add_file'));
  91. echo '<form action="/share/add_file/'. $_GET['cat_id'] .'/?act=add" method="post" enctype="multipart/form-data">
  92. <div class="menu">
  93. <b>'. $lang->word('name') .'</b>:<br/>
  94. <input type="text" name="name" /><br/>
  95. <b>'. $lang->word('choose_file') .'</b>:<br/>
  96. <input name="file" type="file" /><br/>
  97. <b>Screenshot</b>:<br/>
  98. <input name="screen" type="file" /><br/>
  99. <b>'. $lang->word('about') .'</b>:<br/>
  100. <textarea name="about" rows="5" cols="26"></textarea><br/>
  101. <input name="add" type="submit" value="'. $lang->word('upload') .'" /><br/>
  102. </div>
  103. </form>';
  104. $tpl->div('block', img('upload.png'). '<a href="/share/add_file/'. $_GET['cat_id'] .'/?type=import">'.$lang->word('import').'</a><br/>'. NAV .'<a href="/share/">'. $lang->word('share') .'</a><br/>' . HICO .'<a href="/">'. $lang->word('home').'</a>');
  105. require_once(SYS.'/view/footer.php');
  106. ?>