Warning: fopen(./data/cache/settings/interwiki) [function.fopen]: failed to open stream: Permission denied in /home/newfif/public_html/wg/wireless/wiki.php on line 1488
Warning: fopen(./data/cache/settings/plugins) [function.fopen]: failed to open stream: Permission denied in /home/newfif/public_html/wg/wireless/wiki.php on line 1488
Warning: fopen(./data/cache/settings/urlmapping) [function.fopen]: failed to open stream: Permission denied in /home/newfif/public_html/wg/wireless/wiki.php on line 1488
Warning: Cannot modify header information - headers already sent by (output started at /home/newfif/public_html/wg/wireless/wiki.php:1488) in /home/newfif/public_html/wg/wireless/wiki.php on line 1958
모니위키는 파일 업로드를 위한 3가지의 업로드 폼을 매크로로 지원하고 있다.
{{{[[UploadFile]]}}}: 이것은 자바스크립트를 전혀 쓰지 않는다. 그 대신에 간단한 여러개의 파일을 올릴 수 있는 방법을 제공한다.
[[UploadFile]]
----
{{{[[UploadForm]]}}} 혹은 {{{[[UploadFile(js)]]}}}: 이 매크로는 여러개의 파일을 올릴 수 있는 폼을 자바스크립트를 사용하여 만들어준다.
[[UploadForm]]
----
{{{[[SWFUpload]]}}} 혹은 {{{[[UploadFile(swf)]]}}}: 이 매크로는 모니위키 1.1.3CVS부터 지원하며 다중 파일 업로드를 지원한다. (Flash 10 지원)
[[SWFUpload]]
----
모니위키의 {{{[[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
* AttachmentMacro
* UploadedFiles