PageRenderTime 944ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/ajax_upload.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 118 lines | 72 code | 15 blank | 31 comment | 7 complexity | 9128b6fa113279043530a91c837383b3 MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. define('IN_ICYPHOENIX', true);
  11. if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
  12. if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
  13. include(IP_ROOT_PATH . 'common.' . PHP_EXT);
  14. // Start session management
  15. $user->session_begin();
  16. $auth->acl($user->data);
  17. $user->setup();
  18. // End session management
  19. include(IP_ROOT_PATH . 'includes/class_images.' . PHP_EXT);
  20. $class_images = new class_images();
  21. // This page is not in layout special...
  22. $cms_page['page_id'] = 'pic_upload';
  23. $cms_page['page_nav'] = false;
  24. $cms_page['global_blocks'] = false;
  25. $cms_auth_level = (isset($config['auth_view_pic_upload']) ? $config['auth_view_pic_upload'] : AUTH_ALL);
  26. check_page_auth($cms_page['page_id'], $cms_auth_level);
  27. $upload_dir = POSTED_IMAGES_PATH;
  28. $filetypes = 'jpg,jpeg,gif,png';
  29. $maxsize = (1000 * 1024);
  30. /* Results:
  31. * 1 => Success
  32. * 2 => Error
  33. * 3 => Extension not allowed
  34. * 4 => File is empty
  35. * 5 => File too big
  36. */
  37. if(isset($_FILES['userfile']))
  38. {
  39. $filename = strtolower($_FILES['userfile']['name']);
  40. $types = explode(',', $filetypes);
  41. $file = explode('.', $filename);
  42. $extension = $file[sizeof($file) - 1];
  43. $filename = substr($filename, 0, strlen($filename) - strlen($extension) - 1);
  44. if(!in_array($extension, $types))
  45. {
  46. // Extension not allowed
  47. //echo('3');
  48. echo('3|' . $filename . '.' . $extension . '|0|0|0');
  49. exit;
  50. }
  51. $server_path = create_server_url();
  52. $image_upload_data = $class_images->get_image_upload_data($filename, $extension, $upload_dir);
  53. $upload_dir = $image_upload_data['upload_dir'];
  54. $filename = $image_upload_data['filename'];
  55. $filename_tmp = $_FILES['userfile']['tmp_name'];
  56. $file_size = $_FILES['userfile']['size'];
  57. if(empty($filename))
  58. {
  59. // File is empty
  60. //echo('4');
  61. echo('4|' . $filename . '.' . $extension . '|0|0|0');
  62. exit;
  63. }
  64. if($file_size > $maxsize)
  65. {
  66. // File is too big
  67. //echo('5');
  68. echo('5|' . $filename . '.' . $extension . '|0|0|0');
  69. exit;
  70. }
  71. $upload_result = $class_images->upload_image($filename, $extension, $upload_dir, $filename_tmp);
  72. if (empty($upload_result))
  73. {
  74. // Extension not allowed
  75. //echo('3');
  76. echo('3|' . $filename . '.' . $extension . '|0|0|0');
  77. exit;
  78. }
  79. // Success
  80. $filesize = filesize($upload_dir . $filename . '.' . $extension);
  81. $image_data = array(
  82. 'pic_filename' => $filename . '.' . $extension,
  83. 'pic_size' => $filesize,
  84. 'pic_title' => $filename . '.' . $extension,
  85. 'pic_desc' => $filename . '.' . $extension,
  86. 'pic_user_id' => $user->data['user_id'],
  87. 'pic_user_ip' => $user->ip,
  88. 'pic_time' => time(),
  89. );
  90. $image_submit = $class_images->submit_image($image_data, 'insert');
  91. //echo('1');
  92. echo('1|' . $filename . '.' . $extension . '|' . (int) $filesize . '|' . (int) $upload_result[0] . '|' . (int) $upload_result[1]);
  93. //echo($filename . '.' . $extension);
  94. exit;
  95. }
  96. else
  97. {
  98. // Error
  99. //echo('2');
  100. echo('2|' . $filename . '.' . $extension . '|0|0|0');
  101. exit;
  102. }
  103. ?>