PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/upload_reply_file.php

https://bitbucket.org/baraem/feaci-dongasea
PHP | 86 lines | 39 code | 24 blank | 23 comment | 7 complexity | 4579fd049f5e4ae2385ebc62df664169 MD5 | raw file
  1. <?
  2. if (!defined('_DMSHOP_')) exit;
  3. // 파일업로드
  4. $file_name = "file";
  5. $file_del = $_POST['filedel'];
  6. $tmp_name = $_FILES[$file_name]['tmp_name'];
  7. $name = $_FILES[$file_name]['name'];
  8. $size = $_FILES[$file_name]['size'];
  9. $error = $_FILES[$file_name]['error'];
  10. // 덮거나 삭제라면
  11. if (is_uploaded_file($tmp_name) || $file_del) {
  12. // 데이터
  13. $file = shop_reply_file($upload_mode);
  14. if ($file['upload_file']) {
  15. // 파일 경로
  16. $file_path = $shop['path']."/data/reply/".shop_data_path("u", $file['datetime'])."/".$file['upload_file'];
  17. // 파일이 있다면
  18. if (file_exists($file_path) && $file['upload_file']) {
  19. // 첨부파일 삭제
  20. @unlink($file_path);
  21. }
  22. // 삭제
  23. sql_query(" delete from $shop[reply_file_table] where upload_mode = '$upload_mode' ");
  24. }
  25. }
  26. if (is_uploaded_file($tmp_name)) {
  27. $upload['source'] = $name;
  28. $upload['size'] = $size;
  29. // 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
  30. $name = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $name);
  31. // 접미사를 붙인 파일명
  32. $upload['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr(md5(uniqid($shop['server_time'])),0,8).'_'.str_replace('%', '', urlencode($name));
  33. $dest_file = $dir .'/'. $upload['file'];
  34. // 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
  35. $error_code = move_uploaded_file($tmp_name, $dest_file) or die($error);
  36. // 올라간 파일의 퍼미션을 변경합니다.
  37. @chmod($dest_file, 0606);
  38. // 파일정보 (이미지)
  39. $upload['image'] = @getimagesize($dest_file);
  40. /*
  41. if ($upload['image'][2] != '1' && $upload['image'][2] != '2' && $upload['image'][2] != '3' && $upload['image'][2] != '13') {
  42. // 첨부파일 삭제
  43. @unlink($dest_file);
  44. message("<p class='title'>알림</p><p class='text'>jpg, gif, png, swf 파일만 업로드 가능합니다.</p>", "b");
  45. }
  46. */
  47. $sql_common = "";
  48. $sql_common .= " set upload_mode = '".$upload_mode."' ";
  49. $sql_common .= ", upload_source = '".trim(strip_tags(mysql_real_escape_string($upload['source'])))."' ";
  50. $sql_common .= ", upload_file = '".$upload['file']."' ";
  51. $sql_common .= ", upload_filesize = '".$upload['size']."' ";
  52. $sql_common .= ", upload_width = '".$upload['image'][0]."' ";
  53. $sql_common .= ", upload_height = '".$upload['image'][1]."' ";
  54. $sql_common .= ", upload_type = '".$upload['image'][2]."' ";
  55. $sql_common .= ", datetime = '".$shop['time_ymdhis']."' ";
  56. // 등록
  57. sql_query(" insert into $shop[reply_file_table] $sql_common ");
  58. }
  59. ?>