[최경민]님이 남기신 글:
>안녕하세요. 오랜만입니다.
>하나 여쭐게 있어서요.
>
>게시판에서 업로드와 다운로드시
>업로드시에 보안과 중복 해결을 위해,
>
>파일이름+mktime()
으로 올려서,
>다운로드시에 뒷자리(10자리)를
잘라서 다운받도록 하고 있습니다.
>그런데, 다운은 잘 받아지는데, hwp파일의 경우는 저장은
잘되나,
>바로 열기가 안되더군요.
>
>ms의 ppt파일은 그냥 브라우저에서도
열리는데,
>워드파일은 열리지 않더군요. 게시판이 리포트를 주고 받는
거라서
>바로 열기가 되어야 하는데, 열기하면 temp파일에서 열지
못한다고 하더군요. 혹 방법이 없을까요?
>
>실제이름은 워드예제.jpg1081824934
입니다.
>다운은 뒷자리를 잘라서 받아지는데, 열기가 바로
안되는군요.
>
>방법이 있거나, 조언해주신다면
정말 감사하겠습니다.
>
>$file=$where.$fname;
>$filename=substr($fname,0,-10);
>$type = ($type) ? "attachment" : "inline";
>
> Header("Content-type: application/octet-stream");
> Header("Content-Disposition: $type; filename=$filename");
> Header("Content-Description: PHP3 Generated Data");
>
>if (is_file("$file")) {
>$fp = fopen("$file", "r");
>if (!fpassthru($fp))
>fclose($fp);
>}
========================================
Content-type: application/octet-stream
이 헤더를 클라이언트가 어떻게 해석하느냐에 따라서
다릅니다.
대부분 클라이언트 웹브라우저는 이 헤더에 대해서 그냥 download
하는
경우도 있고 첨부파일의 확장자를 구별해서 자신이 알아서
열지 아니면 다운로드할지 결정정합니다.
즉 바꾸어 말하면 클라이언트 설정에 따라서 매우 다르게
작동하기
때문에 서버에서 콘트롤하기 어렵습니다.
http://ftp.linuxchannel.net/media-types/media-types
에 보면 몇가지(?) 정해진 타입이 있습니다.
즉 MS word 워드는
application/msword 라고 되어 있네요.
그러나 역시 클라이언트는 이 헤더를 올바르게 해석하지 못할
수도 있습니다.
|