diasozo 작성:

보통은 게시판에서 한글파일을 읽으려면, 저장해서 읽거나, 바로 읽기를 합니다.
그런데 티스토리에서 파일을 바로 '읽기'로 하면 없는 파일이라고 하고 읽을수가 없습니다.
버그인가요?

그리고 파일을 저장하기 위해서 파일에 커서를 갖다대면 아이콘과 파일확장자명이 제대로 나오는데
저장하는 창에서 보면 파일속성이 html 문서로 되어 있습니다.

/var/www/tt/blog/attachment/index.php 파일을 아래와 같이 수정해 보십시오.

--- tt.orig/blog/attachment/index.php    2006-06-29 16:45:42.000000000 +0900
+++ tt/blog/attachment/index.php       2006-09-21 10:52:32.002301770 +0900
@@ -372,9 +372,10 @@
 }
 header('Content-Disposition: attachment; filename="'.UTF8::convert($attachment['label']).'"');
 header('Content-Transfer-Encoding: binary');
-header('Last-Modified: '.Timestamp::getRFC1123GMT($fstat['mtime']));
+//header('Last-Modified: '.Timestamp::getRFC1123GMT($fstat['mtime']));
 header('Content-Length: '.$fstat['size']);
 header('Content-Type: '.$attachment['mime']);
+header('Cache-control: private');
 header('Connection: close');
 fpassthru($fp);
 fclose($fp);

같은 문제를 겪고 있다가 Cache-control: private 헤더를 추가하여 해결하고 있습니다.

안녕하세요?

회사 업무를 처리하면서 일지를 태터를 이용하여 작성하는데,
간간이 보이는 문제점들이 있어 투고하게 되었습니다.

[환경]
tattertools 1.0.6.1
apache 1.3.33-6sarge3
php 4.3.10-16
mysql 4.0.24-10sarge2

[문제점 1]
파일명이 꽤 긴 경우에 처음 몇 바이트까지만 db 의 label 필드에 저장되는 관계로,
업로드 한 파일을 정상적으로 다운로드 받을 수 없는 문제점이 있습니다.
정확한 경계조건은 테스트하지 않았습니다만, 파일명이 한글 40글자 이상인 경우면 재현 가능할겁니다.
(정확히는 업로드/다운로드가 불가능한 것이 아니라 파일명이 보존되지 않는 것입니다.)

여기에 대해서는 임시로 db 를 수정하여 문제를 해결하고 있습니다만, 참고해 주세요.

--- tt.orig/setup.php   2006-06-29 15:46:48.000000000 +0900
+++ tt/setup.php        2006-09-12 12:32:52.143426715 +0900
@@ -921,8 +921,8 @@
 CREATE TABLE {$_POST['dbPrefix']}Attachments (
   owner int(11) NOT NULL default '0',
   parent int(11) NOT NULL default '0',
-  name varchar(32) NOT NULL default '',
-  label varchar(64) NOT NULL default '',
+  name varchar(255) NOT NULL default '',
+  label varchar(255) NOT NULL default '',
   mime varchar(32) NOT NULL default '',
   size int(11) NOT NULL default '0',
   width int(11) NOT NULL default '0',
@@ -965,7 +965,7 @@
   owner int(11) NOT NULL default '0',
   id int(11) NOT NULL auto_increment,
   parent int(11) default NULL,
-  name varchar(127) NOT NULL default '',
+  name varchar(255) NOT NULL default '',
   priority int(11) NOT NULL default '0',
   entries int(11) NOT NULL default '0',
   entriesInLogin int(11) NOT NULL default '0',

[문제점 2]
두 개 이상의 공백으로 시작하는 텍스트를 저장하고,
수정을 위해 불러왔다 다시 저장하면 공백이 점점 줄어들어서,
이 과정을 반복하면 공백이 두 칸까지 줄어듭니다.

작성하는 내용이 □ ○ - 등을 머리기호로 사용하는 개요식이다 보니,
라인의 시작하는 공백이 줄어들면 전체 편집이 보기에 나빠집니다.

사용자가 입력했던 내용을 그대로 db 에 넣지 않고,
빈칸 둘을 하나로 줄여서 저장하기 때문인 것으로 생각됩니다.
수정되어야 할 사항이라고 생각합니다만, 다른 분들의 의견은 어떠신지요.

[문제점 3]
파일명에 single quote 가 포함된 경우, 업로드한 파일을 정상적으로 다운로드 할 수 없습니다.
label 필드에 저장될 때 back slash 가 붙어버리기 때문인 것으로 생각되는데,
이때문에 첨부파일을 클릭하면 원 파일명이 아닌 업로드시의 utime 형태의 파일명으로 받게 됩니다.
(정확히는 다운로드할 때 파일명을 제대로 알려주지 못하는 문제입니다.)



--

최근 개발 버전에서는 확인해 보지 못했습니다만,
포럼을 검색해도 이에 대한 버그리포트가 없는 것으로 보아 그대로가 아닌가 합니다.