스마트에디터의 파일 업로더는 사용자가 업로드한 파일을 같은 이름으로 저장하기 때문에 기존 파일에 덮어 씌워질 수 있습니다.
또한 다른 이름의 같은 파일을 업로드하는 경우에는 불필요한 자원이 낭비됩니다.
업로드한 파일이 FTP에 저장될 때, 파일이름을 그 파일의
해시코드로 바꿔 주어 중복을 줄일 수 있습니다.
file_uploader.php
-
<?php
-
// default redirection
-
$url = $_REQUEST["callback"].'?callback_func='.$_REQUEST["callback_func"];
-
$bSuccessUpload = is_uploaded_file($_FILES['Filedata']['tmp_name']);
-
-
// SUCCESSFUL
-
if(bSuccessUpload) {
-
$tmp_name = $_FILES['Filedata']['tmp_name'];
-
$name = $_FILES['Filedata']['name'];
-
$uname = @md5_file($tmp_name);
-
-
$filename_ext = strtolower(array_pop(explode('.',$name)));
-
$allow_file = array("jpg", "png", "bmp", "gif");
-
-
if(!in_array($filename_ext, $allow_file)) {
-
$url .= '&errstr='.$name;
-
} else {
-
$uploadDir = '../../upload/';
-
if(!is_dir($uploadDir)){
-
mkdir($uploadDir, 0777);
-
}
-
-
$newPath = $uploadDir.urlencode($uname);
-
-
@move_uploaded_file($tmp_name, $newPath);
-
-
$url .= "&bNewLine=true";
-
$url .= "&sFileName=".urlencode(urlencode($name));
-
$url .= "&sFileURL=/smarteditor/upload/".urlencode(urlencode($uname));
-
}
-
}
-
// FAILED
-
else {
-
$url .= '&errstr=error';
-
}
-
-
header('Location: '. $url);
-
?>
'개발노트 > 웹개발' 카테고리의 다른 글
[PHP] MySQL 데이터 꺼내기 (6) | 2013.08.31 |
---|