개발노트/웹개발

네이버 스마트에디터 사용자 업로드 파일 중복 줄이기

sBum.Seo 2013. 9. 1. 11:06

스마트에디터의 파일 업로더는 사용자가 업로드한 파일을 같은 이름으로 저장하기 때문에 기존 파일에 덮어 씌워질 수 있습니다.

또한 다른 이름의 같은 파일을 업로드하는 경우에는 불필요한 자원이 낭비됩니다.

업로드한 파일이 FTP에 저장될 때, 파일이름을 그 파일의

해시코드로 바꿔 주어 중복을 줄일 수 있습니다.

 

file_uploader.php

  1. <?php
  2. // default redirection
  3. $url = $_REQUEST["callback"].'?callback_func='.$_REQUEST["callback_func"];
  4. $bSuccessUpload = is_uploaded_file($_FILES['Filedata']['tmp_name']);
  5.  
  6. // SUCCESSFUL
  7. if(bSuccessUpload) {
  8.     $tmp_name = $_FILES['Filedata']['tmp_name'];
  9.     $name = $_FILES['Filedata']['name'];
  10.     $uname = @md5_file($tmp_name);
  11.    
  12.     $filename_ext = strtolower(array_pop(explode('.',$name)));
  13.     $allow_file = array("jpg", "png", "bmp", "gif");
  14.    
  15.     if(!in_array($filename_ext, $allow_file)) {
  16.         $url .= '&errstr='.$name;
  17.     } else {
  18.         $uploadDir = '../../upload/';
  19.         if(!is_dir($uploadDir)){
  20.             mkdir($uploadDir, 0777);
  21.         }
  22.        
  23.         $newPath = $uploadDir.urlencode($uname);
  24.        
  25.         @move_uploaded_file($tmp_name, $newPath);
  26.        
  27.         $url .= "&bNewLine=true";
  28.         $url .= "&sFileName=".urlencode(urlencode($name));
  29.         $url .= "&sFileURL=/smarteditor/upload/".urlencode(urlencode($uname));
  30.     }
  31. }
  32. // FAILED
  33. else {
  34.     $url .= '&errstr=error';
  35. }
  36.    
  37. header('Location: '. $url);
  38. ?>

 

'개발노트 > 웹개발' 카테고리의 다른 글

[PHP] MySQL 데이터 꺼내기  (6) 2013.08.31