original_type로 column 이름 변경

This commit is contained in:
conory 2019-09-23 15:30:53 +09:00
parent 1fcba0a44c
commit c2025c4bde
6 changed files with 72 additions and 72 deletions

View file

@ -157,7 +157,7 @@
temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />'; temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
} }
else if(/\.(mp4|webm)$/i.test(result.source_filename)) { else if(/\.(mp4|webm)$/i.test(result.source_filename)) {
if(/\.gif$/i.test(result.original_filename)) { if(result.original_type === 'gif') {
temp_code += '<video src="' + result.download_url + '" autoplay loop muted data-file-srl="' + result.file_srl + '" />'; temp_code += '<video src="' + result.download_url + '" autoplay loop muted data-file-srl="' + result.file_srl + '" />';
} else { } else {
temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />'; temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
@ -329,7 +329,7 @@
temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />'; temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
} }
else if(/\.(mp4|webm)$/i.test(result.source_filename)) { else if(/\.(mp4|webm)$/i.test(result.source_filename)) {
if(/\.gif$/i.test(result.original_filename)) { if(result.original_type === 'gif') {
temp_code += '<video src="' + result.download_url + '" autoplay loop muted data-file-srl="' + result.file_srl + '" />'; temp_code += '<video src="' + result.download_url + '" autoplay loop muted data-file-srl="' + result.file_srl + '" />';
} else { } else {
temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />'; temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';

View file

@ -85,7 +85,7 @@ class file extends ModuleObject
{ {
return true; return true;
} }
if(!$oDB->isColumnExists('files', 'original_filename')) if(!$oDB->isColumnExists('files', 'original_type'))
{ {
return true; return true;
} }
@ -168,9 +168,9 @@ class file extends ModuleObject
{ {
$oModuleController->insertTrigger('comment.copyCommentByDocument', 'file', 'controller', 'triggerAddCopyCommentByDocument', 'add'); $oModuleController->insertTrigger('comment.copyCommentByDocument', 'file', 'controller', 'triggerAddCopyCommentByDocument', 'add');
} }
if(!$oDB->isColumnExists('files', 'original_filename')) if(!$oDB->isColumnExists('files', 'original_type'))
{ {
$oDB->addColumn('files', 'original_filename', 'varchar', '250'); $oDB->addColumn('files', 'original_type', 'varchar', '60');
} }
if(!$oDB->isColumnExists('files', 'thumbnail_filename')) if(!$oDB->isColumnExists('files', 'thumbnail_filename'))
{ {

View file

@ -147,8 +147,8 @@ class fileController extends file
$this->add('direct_download', $output->get('direct_download')); $this->add('direct_download', $output->get('direct_download'));
$this->add('source_filename', $output->get('source_filename')); $this->add('source_filename', $output->get('source_filename'));
$this->add('upload_target_srl', $output->get('upload_target_srl')); $this->add('upload_target_srl', $output->get('upload_target_srl'));
$this->add('original_filename', $output->get('original_filename'));
$this->add('thumbnail_filename', $output->get('thumbnail_filename')); $this->add('thumbnail_filename', $output->get('thumbnail_filename'));
$this->add('original_type', $output->get('original_type'));
if ($output->get('direct_download') === 'Y') if ($output->get('direct_download') === 'Y')
{ {
$this->add('download_url', $oFileModel->getDirectFileUrl($output->get('uploaded_filename'))); $this->add('download_url', $oFileModel->getDirectFileUrl($output->get('uploaded_filename')));
@ -876,14 +876,9 @@ class fileController extends file
// Sanitize filename // Sanitize filename
$file_info['name'] = Rhymix\Framework\Filters\FilenameFilter::clean($file_info['name']); $file_info['name'] = Rhymix\Framework\Filters\FilenameFilter::clean($file_info['name']);
// Get extension
$extension = explode('.', $file_info['name']) ?: array('');
$extension = strtolower(array_pop($extension));
// Add extra fields to file info array // Add extra fields to file info array
$file_info['original_name'] = $file_info['name']; $file_info['extension'] = $original_extension = $this->getExtension($file_info['name']);
$file_info['extension'] = $extension; $file_info['converted'] = false;
$file_info['resized'] = false;
$file_info['thumbnail'] = null; $file_info['thumbnail'] = null;
// Get file module configuration // Get file module configuration
@ -895,7 +890,7 @@ class fileController extends file
{ {
if(isset($config->allowed_extensions) && count($config->allowed_extensions)) if(isset($config->allowed_extensions) && count($config->allowed_extensions))
{ {
if(!in_array($extension, $config->allowed_extensions)) if(!in_array($file_info['extension'], $config->allowed_extensions))
{ {
throw new Rhymix\Framework\Exception('msg_not_allowed_filetype'); throw new Rhymix\Framework\Exception('msg_not_allowed_filetype');
} }
@ -905,7 +900,7 @@ class fileController extends file
// Check image type and size // Check image type and size
if(!$manual_insert) if(!$manual_insert)
{ {
if(in_array($extension, array('gif', 'jpg', 'jpeg', 'png', 'webp', 'bmp'))) if(in_array($file_info['extension'], array('gif', 'jpg', 'jpeg', 'png', 'webp', 'bmp')))
{ {
$file_info = $this->checkUploadedImage($file_info, $config); $file_info = $this->checkUploadedImage($file_info, $config);
} }
@ -937,11 +932,17 @@ class fileController extends file
$args->module_srl = $module_srl; $args->module_srl = $module_srl;
$args->upload_target_srl = $upload_target_srl; $args->upload_target_srl = $upload_target_srl;
$args->download_count = $download_count; $args->download_count = $download_count;
$args->member_srl = getModel('member')->getLoggedMemberSrl(); $args->member_srl = Rhymix\Framework\Session::getMemberSrl();
$args->source_filename = $file_info['name']; $args->source_filename = $file_info['name'];
$args->original_filename = $file_info['original_name'];
$args->sid = Rhymix\Framework\Security::getRandom(32, 'hex'); $args->sid = Rhymix\Framework\Security::getRandom(32, 'hex');
// Set original type if filename extension is changed
$args->original_type = null;
if($file_info['extension'] !== $original_extension)
{
$args->original_type = $original_extension;
}
// Set storage path by checking if the attachement is an image or other kinds of file // Set storage path by checking if the attachement is an image or other kinds of file
if($direct = Rhymix\Framework\Filters\FilenameFilter::isDirectDownload($args->source_filename)) if($direct = Rhymix\Framework\Filters\FilenameFilter::isDirectDownload($args->source_filename))
{ {
@ -1023,8 +1024,8 @@ class fileController extends file
$output->add('source_filename', $args->source_filename); $output->add('source_filename', $args->source_filename);
$output->add('upload_target_srl', $upload_target_srl); $output->add('upload_target_srl', $upload_target_srl);
$output->add('uploaded_filename', $args->uploaded_filename); $output->add('uploaded_filename', $args->uploaded_filename);
$output->add('original_filename', $args->original_filename);
$output->add('thumbnail_filename', $args->thumbnail_filename); $output->add('thumbnail_filename', $args->thumbnail_filename);
$output->add('original_type', $args->original_type);
return $output; return $output;
} }
@ -1034,9 +1035,6 @@ class fileController extends file
*/ */
public function uploadFile($tmp_name, $file_name, $storage_path, $direct = false, $method = '') public function uploadFile($tmp_name, $file_name, $storage_path, $direct = false, $method = '')
{ {
$extension = explode('.', $file_name) ?: array('');
$extension = strtolower(array_pop($extension));
// change to random file name. // change to random file name.
// because window php bug. window php is not recognize unicode character file name - by cherryfilter // because window php bug. window php is not recognize unicode character file name - by cherryfilter
$uploaded_filename = $storage_path . Rhymix\Framework\Security::getRandom(32, 'hex'); $uploaded_filename = $storage_path . Rhymix\Framework\Security::getRandom(32, 'hex');
@ -1046,7 +1044,7 @@ class fileController extends file
} }
if($direct) if($direct)
{ {
$uploaded_filename .= '.' . $extension; $uploaded_filename .= '.' . $this->getExtension($file_name);
} }
// move the file // move the file
@ -1581,10 +1579,9 @@ class fileController extends file
* @param int $upload_target_srl * @param int $upload_target_srl
* @param string $regdate * @param string $regdate
* @param bool $absolute_path * @param bool $absolute_path
* @param int $folder_structure
* @return string * @return string
*/ */
public function getStoragePath($file_type, $file_srl = 0, $module_srl = 0, $upload_target_srl = 0, $regdate = '', $absolute_path = true, $folder_structure = null) public function getStoragePath($file_type, $file_srl, $module_srl = 0, $upload_target_srl = 0, $regdate = '', $absolute_path = true)
{ {
// 변수 확인 및 넘어오지 않은 변수 기본값 지정 // 변수 확인 및 넘어오지 않은 변수 기본값 지정
$file_srl = intval($file_srl); $file_srl = intval($file_srl);
@ -1593,10 +1590,7 @@ class fileController extends file
$regdate = $regdate ?: date('YmdHis'); $regdate = $regdate ?: date('YmdHis');
// 시스템 설정 참고 (기존 사용자는 1, 신규 설치시 2가 기본값임) // 시스템 설정 참고 (기존 사용자는 1, 신규 설치시 2가 기본값임)
if(!$folder_structure) $folder_structure = config('file.folder_structure');
{
$folder_structure = config('file.folder_structure');
}
// 기본 경로 지정 // 기본 경로 지정
$prefix = $absolute_path ? \RX_BASEDIR : './'; $prefix = $absolute_path ? \RX_BASEDIR : './';
@ -1606,7 +1600,6 @@ class fileController extends file
{ {
return sprintf('%sfiles/attach/%s/%04d/%02d/%02d/', $prefix, $file_type, substr($regdate, 0, 4), substr($regdate, 4, 2), substr($regdate, 6, 2)); return sprintf('%sfiles/attach/%s/%04d/%02d/%02d/', $prefix, $file_type, substr($regdate, 0, 4), substr($regdate, 4, 2), substr($regdate, 6, 2));
} }
// 1 or 0: module_srl 및 업로드 대상 번호에 따라 3자리씩 끊어서 정리 // 1 or 0: module_srl 및 업로드 대상 번호에 따라 3자리씩 끊어서 정리
else else
{ {
@ -1614,7 +1607,12 @@ class fileController extends file
return sprintf('%sfiles/attach/%s/%d/%s', $prefix, $file_type, $module_srl, $components); return sprintf('%sfiles/attach/%s/%d/%s', $prefix, $file_type, $module_srl, $components);
} }
} }
public function getExtension($file_name)
{
return strtolower(array_pop(explode('.', $file_name)));
}
/** /**
* Find the attachment where a key is upload_target_srl and then return java script code * Find the attachment where a key is upload_target_srl and then return java script code
* *

View file

@ -73,15 +73,17 @@ class fileModel extends file
foreach($tmp_files as $file_info) foreach($tmp_files as $file_info)
{ {
if(!$file_info->file_srl) continue; if(!$file_info->file_srl)
{
continue;
}
$obj = new stdClass; $obj = new stdClass;
$obj->file_srl = $file_info->file_srl; $obj->file_srl = $file_info->file_srl;
$obj->source_filename = $file_info->source_filename; $obj->source_filename = $file_info->source_filename;
$obj->thumbnail_filename = $file_info->thumbnail_filename;
$obj->original_type = $file_info->original_type;
$obj->file_size = $file_info->file_size; $obj->file_size = $file_info->file_size;
$obj->disp_file_size = FileHandler::filesize($file_info->file_size); $obj->disp_file_size = FileHandler::filesize($file_info->file_size);
$obj->original_filename = $file_info->original_filename;
$obj->thumbnail_filename = $file_info->thumbnail_filename;
if($file_info->direct_download == 'N') if($file_info->direct_download == 'N')
{ {
$obj->download_url = $this->getDownloadUrl($file_info->file_srl, $file_info->sid, $file_info->module_srl); $obj->download_url = $this->getDownloadUrl($file_info->file_srl, $file_info->sid, $file_info->module_srl);

View file

@ -1,24 +1,24 @@
<query id="insertFile" action="insert"> <query id="insertFile" action="insert">
<tables> <tables>
<table name="files" /> <table name="files" />
</tables> </tables>
<columns> <columns>
<column name="file_srl" var="file_srl" notnull="notnull" /> <column name="file_srl" var="file_srl" notnull="notnull" />
<column name="upload_target_srl" var="upload_target_srl" filter="number" default="0" notnull="notnull" /> <column name="upload_target_srl" var="upload_target_srl" filter="number" default="0" notnull="notnull" />
<column name="sid" var="sid" /> <column name="sid" var="sid" />
<column name="module_srl" var="module_srl" filter="number" default="0" notnull="notnull" /> <column name="module_srl" var="module_srl" filter="number" default="0" notnull="notnull" />
<column name="source_filename" var="source_filename" notnull="notnull" minlength="1" maxlength="250" /> <column name="source_filename" var="source_filename" notnull="notnull" minlength="1" maxlength="250" />
<column name="uploaded_filename" var="uploaded_filename" notnull="notnull" minlength="1" maxlength="250" /> <column name="uploaded_filename" var="uploaded_filename" notnull="notnull" minlength="1" maxlength="250" />
<column name="original_filename" var="original_filename" notnull="notnull" minlength="1" maxlength="250" />
<column name="thumbnail_filename" var="thumbnail_filename" /> <column name="thumbnail_filename" var="thumbnail_filename" />
<column name="file_size" var="file_size" notnull="notnull" default="0" /> <column name="original_type" var="original_type" />
<column name="direct_download" var="direct_download" notnull="notnull" default="N" /> <column name="file_size" var="file_size" notnull="notnull" default="0" />
<column name="comment" var="comment" /> <column name="direct_download" var="direct_download" notnull="notnull" default="N" />
<column name="download_count" var="download_count" default="0" /> <column name="comment" var="comment" />
<column name="member_srl" var="member_srl" default="0" /> <column name="download_count" var="download_count" default="0" />
<column name="cover_image" var="is_cover" default="N" /> <column name="member_srl" var="member_srl" default="0" />
<column name="regdate" var="regdate" default="curdate()" /> <column name="cover_image" var="is_cover" default="N" />
<column name="ipaddress" var="ipaddress" default="ipaddress()" /> <column name="regdate" var="regdate" default="curdate()" />
<column name="isvalid" var="isvalid" default="N" /> <column name="ipaddress" var="ipaddress" default="ipaddress()" />
</columns> <column name="isvalid" var="isvalid" default="N" />
</columns>
</query> </query>

View file

@ -1,20 +1,20 @@
<table name="files"> <table name="files">
<column name="file_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" /> <column name="file_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<column name="upload_target_srl" type="number" size="11" default="0" notnull="notnull" index="idx_upload_target_srl" /> <column name="upload_target_srl" type="number" size="11" default="0" notnull="notnull" index="idx_upload_target_srl" />
<column name="upload_target_type" type="char" size="3" index="idx_upload_target_type" /> <column name="upload_target_type" type="char" size="3" index="idx_upload_target_type" />
<column name="sid" type="varchar" size="60" /> <column name="sid" type="varchar" size="60" />
<column name="module_srl" type="number" size="11" default="0" notnull="notnull" index="idx_module_srl" /> <column name="module_srl" type="number" size="11" default="0" notnull="notnull" index="idx_module_srl" />
<column name="member_srl" type="number" size="11" notnull="notnull" index="idx_member_srl" /> <column name="member_srl" type="number" size="11" notnull="notnull" index="idx_member_srl" />
<column name="download_count" type="number" size="11" notnull="notnull" default="0" index="idx_download_count" /> <column name="download_count" type="number" size="11" notnull="notnull" default="0" index="idx_download_count" />
<column name="direct_download" type="char" size="1" default="N" notnull="notnull" /> <column name="direct_download" type="char" size="1" default="N" notnull="notnull" />
<column name="source_filename" type="varchar" size="250" /> <column name="source_filename" type="varchar" size="250" />
<column name="uploaded_filename" type="varchar" size="250" /> <column name="uploaded_filename" type="varchar" size="250" />
<column name="original_filename" type="varchar" size="250" />
<column name="thumbnail_filename" type="varchar" size="250" /> <column name="thumbnail_filename" type="varchar" size="250" />
<column name="file_size" type="number" size="11" default="0" notnull="notnull" index="idx_file_size" /> <column name="original_type" type="varchar" size="60" />
<column name="comment" type="varchar" size="250" /> <column name="file_size" type="number" size="11" default="0" notnull="notnull" index="idx_file_size" />
<column name="isvalid" type="char" size="1" default="N" index="idx_is_valid" /> <column name="comment" type="varchar" size="250" />
<column name="cover_image" type="char" size="1" default="N" notnull="notnull" index="idx_list_order" /> <column name="isvalid" type="char" size="1" default="N" index="idx_is_valid" />
<column name="regdate" type="date" index="idx_regdate" /> <column name="cover_image" type="char" size="1" default="N" notnull="notnull" index="idx_list_order" />
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress"/> <column name="regdate" type="date" index="idx_regdate" />
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress"/>
</table> </table>