모니위키는 파일 업로드를 위한 3가지의 업로드 폼을 매크로로 지원하고 있다.

[[UploadFile]]: 이것은 자바스크립트를 전혀 쓰지 않는다. 그 대신에 간단한 여러개의 파일을 올릴 수 있는 방법을 제공한다.

or Multiple Upload files.

----
[[UploadForm]] 혹은 [[UploadFile(js)]]: 이 매크로는 여러개의 파일을 올릴 수 있는 폼을 자바스크립트를 사용하여 만들어준다.

Attachments

----
[[SWFUpload]] 혹은 [[UploadFile(swf)]]: 이 매크로는 모니위키 1.1.3CVS부터 지원하며 다중 파일 업로드를 지원한다. (Flash 10 지원)


----
모니위키의 [[UploadFile]] 매크로는 업로드 된 파일을 $upload_dir로 정의된 디렉토리에 각 페이지별 디렉토리를 생성시키고, 그 디렉토리에 업로드된 파일을 저장한다.

업로드가 성공하면 업로드된 파일을 다음과 같은 문법으로 연결할 수 있다.
attachment:filename.ext 혹은 attachment:페이지명:filename.ext

예를 들어, MyPage에 들어가서 MyPage?action=UploadFile을 하거나, MyPage에서 [[UploadFile]] 매크로를 사용하여 파일을 업로드를 하면 $upload_dir='pds';라고 되어있는 경우에 pds/MyPage/가 새롭게 만들어지고 거기에 올린 파일이 저장된다.

업로드 제한

config.php의 $pds_allowed라는 변수를 조정하면 업로드가능한 파일을 제한을 걸 수 있다. $pds_allowed의 기본값은 다음과 같을 것이다.
$pds_allowed="png|jpg|jpeg|gif|mp3|zip|tgz|gz|txt|css|exe|hwp|pdf|flv";

안전하지 않은 파일 확장자 점검

/!\ 모니위키 1.1.3CVS부터 지원

아파치 mod_mime의 문제점으로 인해서 안전하지 않은 파일 이름을 점검합니다.
$pds_protected="pl|cgi|php"; # config.php에 정의하지 않았을 때의 기본값.

예를 들어 아파치의 mod_mime이 hwp 확장자를 인식하지 못하는데, my.php.hwp와 같은 파일이름을 업로드할 경우, 아파치의 mod_mime모듈은 my.php.hwp를 hwp가 아닌 php파일로 인식하게 됩니다.

$pds_protected를 설정해 놓으면 my.php.hwp 파일 이름이 my.php.txt.hwp로 이름이 바뀌면서 파일이 업로드 됩니다.

$upload_masters

/!\ 모니위키 1.1.3CVS부터 지원

$upload_masters=array('Foobar','Babo'); 여기에 등록된 모든 사용자는 파일 확장자와 무관하게 모든 종류의 파일을 업로드 할 수 있습니다.

$use_filetype

/!\ 모니위키 1.1.3CVS부터 지원

이 값을 1로 설정하였을 경우, 업로드 할 때의 정보를 이용해서 파일 타입을 판별합니다.
안전한 업로드가 이미 보장 된 경우 사용하실 수 있을 것입니다.

주의사항

모니위키에서는 모든 업로드 된 파일이 $upload_dir='pds' 하위 디렉토리에 보존된다. 즉 pds/*/에 1단계 하위 디렉토리들이 생성된다. (2단계 이상은 지원하지 않습니다.)

그러나 노스모크 모인모인에서는 pds/* 하위 디렉토리로 모든 파일이 저장된다. 노스모크 모인모인과 호환을 보장하기 위해서 UploadFile액션은 특별히 UploadFile이라는 페이지에서 파일을 업로드하면 pds/UploadFile라는 디렉토리가 만들어지지 않고 pds 아래로 바로 업로드 되게끔 하였다.

pds 바로 밑으로 저장된 pds/* 파일을 연결하려면 attachment:/foobar.png 문법을 쓴다. 즉, "/"를 맨 앞에 붙여준다.

기타

공백이 들어있는 파일 이름

공백이 들어있는 파일을 링크를 걸 경우는 attachment:"hello world.png"와 같이 링크를 걸어 준다.

See also
Retrieved from http://memorecycle.com/w/wiki.php/UploadFileMacro
last modified 2016-03-04 23:10:13