묻고답하기
첨부파일을 다른 지정된 곳에 저장할 수 있을까요??
2012.01.28 18:01
module/files/files.controller.php
소스를 수정하면 될 것같은데
현재 기존에 임의적인 폴더에 임의 파일.mp3으로 저장 된 것과
더불어서 추가적으로 지정한 곳 (/home/user/html/filecenter) 에 유저가 올린 파일명 그대로
보관하고 싶은데
어떻게 하면 될까요..?
또 첨부파일은 mp3,wav 등의 미디어 파일만 저장가능하게 하고싶습니다.
이 부분을 수정하면 될 것같은데 ㅠ_ㅠ) 초보라 모르겠습니다.
(굳이 기존에 글이 삭제되면 첨부파일이 지정된 곳 파일까지 삭제되지 않아도 됩니다..)
@copy($file_info['tmp_name'], $filename);
이 부분에 @copy($file_info[/home/user/html/filecenter], $filename);
아래에 이렇게 추가해주면 될까요??
// 이미지인지 기타 파일인지 체크하여 upload path 지정
if(preg_match("/\.(jpe?g|gif|png|wm[va]|mpe?g|avi|swf|flv|mp[1-4]|as[fx]|wav|midi?|moo?v|qt|r[am]{1,2}|m4v)$/i", $file_info['name'])) {
// direct 파일에 해킹을 의심할 수 있는 확장자가 포함되어 있으면 바로 삭제함
$file_info['name'] = preg_replace('/\.(php|phtm|html?|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
$file_info['name'] = str_replace(array('+
'<','>'),array('%3C','%3E'),$file_info['name']);
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
// special character to '_'
// change to md5 file name. because window php bug. window php is not recognize unicode character file name - by cherryfilter
$ext = substr(strrchr($file_info['name'],'.'),1);
//$_filename = preg_replace('/[#$&*?+%"\']/', '_', $file_info['name']);
$_filename = md5(crypt(rand(1000000,900000), rand(0,100))).'.'.$ext;
$filename = $path.$_filename;
$idx = 1;
while(file_exists($filename)) {
$filename = $path.preg_replace('/\.([a-z0-9]+)$/i','_'.$idx.'.$1',$_filename);
$idx++;
}
$direct_download = 'Y';
} else {
$path = sprintf("./files/attach/binaries/%s/%s", $module_srl, getNumberingPath($upload_target_srl,3));
$filename = $path.md5(crypt(rand(1000000,900000), rand(0,100)));
$direct_download = 'N';
}
// 디렉토리 생성
if(!FileHandler::makeDir($path)) return new Object(-1,'msg_not_permitted_create');
// 파일 이동
if($manual_insert) {
@copy($file_info['tmp_name'], $filename);
if(!file_exists($filename)) {
$filename = $path. md5(crypt(rand(1000000,900000).$file_info['name'])).'.'.$ext;
@copy($file_info['+
'tmp_name'], $filename);
}
} else {
if(!@move_uploaded_file($file_info['tmp_name'], $filename)) {
$filename = $path. md5(crypt(rand(1000000,900000).$file_info['name'])).'.'.$ext;
if(!@move_uploaded_file($file_info['tmp_name'], $filename)) return new Object(-1,'msg_file_upload_error');
}
}