[2008. 08. 21.] 일기

2008/08/21 10:42

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[2008. 08. 20.] 일기

2008/08/20 21:09

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

php 에서 파일다운로드하는 방법은 다음과같이 Header 를 이용하여야 한다.

오늘 삽질을 좀 했는데 계속 헤더 앞에 다른 문자가 출력되어있다는 에러가 나는 것이다...

도데체 뭘까... 한 시간의 삽질 끝에... <?  <- 요거 앞에 한칸의 공백이 있는 것을 발견했다....

Header 를 사용할 때는 그 앞에 어떤 것도 출력되면 안된다.

이 소스를 개발할 때는 이 것을 주의해야한다.

꼼꼼하게 앞에 빈칸이 없도록 해야할 것을 잊지말자.


<?
class filemodel extends model
{
    function get_mode()
    {
        $file_id = $this -> get_check("file_id", "plus");
        $file = mysql::singleton("file") -> get_file_name($file_id);
        $file_url = $file['file_url'];
        $file_name = $file['file_name'];
        $f_name = basename($file_name);
        $downloadPath = $file_url;
        Header("Content-Type: file/unknown");
        Header("Content-Disposition: attachment; filename=". $f_name);
        Header("Content-Length: ".filesize("$downloadPath"));
        header("Content-Transfer-Encoding: binary ");
        Header("Pragma: no-cache");
        Header("Expires: 0");

        flush();


        if ($fp = fopen("$downloadPath", "r")) {
            print fread($fp, filesize("$downloadPath"));
        }
        fclose($fp);
    }
}
?>

참고로 링크는 이런식으로 하면 되겠지?

<a href="/api/index.php?model=file&mode=get&file_id=<?=$value['file_id1']?>&view=script" ><?=$value['file1']['file_name'];?></a>

화이링~^^

Posted by 박상현 멋진상현
[다음에 생성될  auto_increment 컬럼의 값 알아내기]

show table status like '테이블명'

이렇게 쿼리를 때려주면 다음에 생성될 auto_increment 값을 알 수 있습니다^^
Posted by 박상현 멋진상현
흠... 동적으로 클래스를 추가하고 삭제하여 스타일을 바꾸는 기술은 아주 많은 방법이 있다.

이번에 사용한 방법은 클래스를 계층적으로 다음과 같이 정의한 뒤...

.today-text
{
    color : #ffffff;
    font-weight : bold;
    margin : 8px 0 0 60px;
}
.text-b .today-text
{
    color : #848484;
    font-weight : normal;
    margin : 8px 0 0 60px;
    font-size : 10px;
    margin : 10px 0 0 60px;
}

이걸 보면 감이 잡혀야지...

html 코드는 이렇게 되어있을 것이다...

<div id="to_program" ><div class="today-text"><?=substr(date("m-d"), 0, 2)?>&nbsp; <?=substr(date("m-d"), 3, 2)?></div></div>

php 코드는 날짜를 써 넣으려하다보니 들어간 것.....

암튼 어떤 이벤트가 발생했을때 id 가 to_program 인 엘리먼트에 text-b 라는 클래스를 add 해주면

아래쪽의 css 가 적용되지 않겠는가.ㅋㅋ

자바스크립트 코드는 다음과 같다... 

Ext JS 라이브러리를 사용했을 경우..

this.today = this.form.child("#to_program");
this.form = Ext.get(form);

만약 위의 하얀 글씨의 css 를 적용하려면..

this.today.addClass("text-b");

밑의 글씨의 css 를 적용하려면..

this.today.removeClass("text-b");

이렇게 하면 되겠지!!

잊어먹지말자.ㅋㅋ

Posted by 박상현 멋진상현