세이박스

'파일'에 해당되는 글 25건

  1. 리눅스 서버 rsync error - transferred (code 23) at main.c(****)
  2. Convert VOB to AVI VOB DVD 파일을 AVI, FLV, MP3 등 포멧으로 쉽게 변환하는 프로그램 (vob2avi)
  3. SD 메모리 포멧 SDFormatter V2.0.0.3
  4. PHP 특정 폴더 내에 있는 파일들을 선택적으로 삭제 하고자 할 때
  5. UCC 다바다 v1.3.4.3 - 다음 tv팟 주소 인식 안되던 문제 수정
  6. HashToolsSetup 1.3.0 다운받은 파일 hash값 비교하는 프로그램
  7. ezRenamer ver 1.07 파일 및 폴더명 손쉽게 한번에 일괄 변경시 유용한 프로그램
  8. php upload 용량 늘리기
  9. 인터넷에서 다운 파일중 확장자가 *.torrent 로 된것을 받을 경우
  10. Gif.ASA 파일 주의!
  11. PHP 파일 업로드 관련 처리
  12. PHP 파일 다운받을때 한글파일문제 해결방법
  13. PHP 파일읽기 - fopen()
  14. PHP 파일 내용 DB로 넣기
  15. PHP 파일 생성
  16. PHP 파일 다운로드
  17. PHP POST 전송된 첨부파일 확장자 확인 하기
  18. PHP FTP로 파일 업로드
  19. PHP registart 값 off 후 파일 업로드
  20. PHP 파일 업로드시 권한 설정
  21. img를 php 페이지로 부르기
  22. PHP FTP 원격으로 파일 삭제
  23. PHP 원격으로 FTP 파일 업로드
  24. php 파일로 이미지 부르기
  25. MYSQL 테이블을 화일로 백업 및 복구

리눅스 서버 rsync error - transferred (code 23) at main.c(****)

서버,보안

Rsync 명령은 서버와 서버간에 지정한 폴더 내의 파일들을 동기화 시켜주는 명령어로서 싱크 대상이 되는 서버와 파일을 받아가는 싱크 클라이언트 서버로 구분합니다.
위 오류 메시지는 파일을 받아가는 서버에서 싱크시 발생할 수 있는 오류중 하나로써 파일 소유권 설정 문제에 대한 오류 메시지 입니다.

rsync err - transferred (code 23) //전송 오류 code 23

구체적인 원인은 웹페이지의 파일의 소유권이 nobody로 대부분 되어 있는데 만약 Apache 설정에서 일반 사용자 개정으로 변경 했다면 싱크 대상 서버에 /etc/rsync.conf 설정과 달라서 생기는 오류 입니다.


[HOME]
path = /home/
comment =
uid = nobody
gid = nobody
....


uid, gid 항목에 nobody를 Apache에서 지정한 개정으로 변경 하시던지 Apache 권한 설정을 nobody로 변경하시던지 하시면 됩니다.

Apache에서 소유권 변경을 할 경우엔 두 서버 모두 같이 변경 하셔야하며 파일들도 소유권 변경 해야만 싱크가 될 수 있으니 주의 해서 설정 변경을 하시기 바랍니다.



  최신영화, 최신 미국드라마 무료 다운로드... 


[출처] 세이박스 - http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=220

Convert VOB to AVI VOB DVD 파일을 AVI, FLV, MP3 등 포멧으로 쉽게 변환하는 프로그램 (vob2avi)

기타

사용자 삽입 이미지


DVD CD에 저장된 파일중 VOB 확장자를 가진 동영상 파일을 때론 다른 포멧으로 변경하고자 할 때 버츄얼Dub 등을 이용할 수 있으나 복잡하고 어럽기만 할 때가 있습니다.

이럴때 Convert Vob to Avi 프로그램을 이용하면 매우 간편하게 다른 포멧으로 변환 할 수 있습니다.
더욱 매력적인 부분은 프리웨어라는 것입니다.

설치 과정은 다운 받은 파일을 실행후 계속 Next 해주시면 간단하게 설치가 완료 됩니다.

사용방법은 다음과 같습니다.

1. Source VOB File
에서 Open 클릭후 대상 파일을 선택합니다.
아쉬운점은 한번에 파일 하니씩만 변환 가능 합니다.
한꺼번에 선택해놓고 순서대로 변환 해주면 좋으련만 아쉽네요.

2. AVI Vidio Format
저장할 포멧을 선택 합니다.
나름데로 다양한 포멧을 지원해주더군요.
변환할 포멧 : MPEG4, Xvid, FLV, Song PSP, MP3, DivX, WMV, MOV, 3GP
전 개인적으로 TV에 연결된 디빅스 플레이어가 이전것이라 주로 Xvid 포멧을 사용합니다.
확장자는 avi로 저장 됩니다.

3. Ratio
저장할 비율을 선택합니다.
4가지 비율을 선택할 수 있습니다.
None, 16:9, 4:3, 16:10
전 TV가 예전 방식이라 4:3을 선택합니다.
혹 기존 비율을 유지 하실려면 None을 선택 하시면 될 겁니다.

4. Convert
마지막으로 Convert 버튼을 클릭하면 저장할 위치를 물어 봅니다.
변환할 포멧이 *.vob 확장자는 아닐테니 같은 위치에 저장하셔도 상관없습니다.
선택후 바로 변환 진행 됩니다.
용량에 따라 시간적 차이가 있지만 버츄얼덥 보다는 빠르게 진행되는듯 합니다. (PC사양에 따라 차이남)


프로그램 : Convert VOB to AVI
변환포멧 : MPEG4, Xvid, FLV, Song PSP, MP3, DivX, WMV, MOV, 3GP
버전 : 1.7
다운로드 : http://www.saybox.co.kr/bbs/board.php?bo_table=data&wr_id=27


  최신영화 보러가기... 


SD 메모리 포멧 SDFormatter V2.0.0.3

기타
사용자 삽입 이미지

SD 메모리를 포멧이 잘 안될때 Panasonic에서 제공하는 SDFormatter를 이용해서 포멧 잘 되곤 하더군요.

[실행방법]

1. 프로그램은 설치가 필요 없이 바로 실행 가능 하므로 매우 간단하게 이용하실 수 있습니다.

2. Device 에 SD 메모리만 나타나며 포멧 하고자 하는 드라이브를 선택합니다.

3. 프로그램 실행후 메모리를 USB에 꼽을때 간혹 나타나지 않을 경우 Refresh를 누르면 갱신 되어 나타 납니다.

사용자 삽입 이미지

4. Option Setting

1) FORMAT TYPE :
기본 빠른 포멧이며, FULL 포멧 방식을 선택할 수 있습니다. 기본 포멧을 이용시 포멧을 하더라도 지워진 자료를 복구 할수 있는 반면 FULL 포멧에서 Erase ON을 선택하게 되면 삭제된 자료를 복구 할 수 없도록 지우고 포멧을 하게 됩니다.

2) FORMAT SIZE ADJUSTMENT :
기본 OFF 로 되어 있으며 ON 설정시 포멧 사이즈를 조절 하도록 한다는 의미인데 이 항목에 대해선 자세히 모르겠습니다.


5. Format
Format 버튼을 눌러 포멧을 합니다. 아주 간단하죠!
옵션 설정은 굳이 안하셔도 됩니다.


출처 : Panasonic

PHP 특정 폴더 내에 있는 파일들을 선택적으로 삭제 하고자 할 때

웹프로그램
간혹 특정 폴더(디렉토리) 내에 있는 파일들 중에 전체 또는 선택 적으로 일괄 삭제를 해야 할 경우가 있습니다.

다음과 같은 함수를 할용하시면 됩니다.

1. opendir(path)
path 지정한 경로의 폴더안에 있는 파일들을 불러 옵니다.
예)
<?php
$dir
= "/etc/php5"
;

// 알고 있는 디렉토리를 열어서, 내용을 읽어들이는 작업입니다.
if (is_dir($dir
)) {
    if (
$dh = opendir($dir
)) {
        while ((
$file = readdir($dh)) !== false
) {
            echo
"filename: $file : filetype: " . filetype($dir . $file) . "\n"
;
        }
       
closedir($dh
);
    }
}
?>

결과)
filename: . : filetype: dir
filename: .. : filetype: dir
filename: apache : filetype: dir
filename: cgi : filetype: dir
filename: cli : filetype: dir


2. glob(패턴)
파일의 패턴을 호출할때 사용합니다. 예로 *.txt 라고 하면 txt 확장자 파일을 모두 찾아 줍니다.
예)
<?php
foreach (glob("*.txt") as $filename
) {
    echo
"$filename size " . filesize($filename) . "\n"
;
}
?>

결과)
funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820


3. unlink(파일)
지정한 파일 및 폴더를 삭제 합니다. 위 함수를 이용해서 찾은 파일을 삭제하고자 할때 이용합니다.
예)
<?php
$fh
= fopen('test.html', 'a'
);
fwrite($fh, '<h1>Hello world!</h1>'
);
fclose($fh
);

mkdir('testdir', 0777
);

unlink('test.html'
);
unlink('testdir'
);
?>

결과) 지정한 파일 삭제

삭제할 파일의 폴더에 지울수 있는 권한이 있어야 합니다.

UCC 다바다 v1.3.4.3 - 다음 tv팟 주소 인식 안되던 문제 수정

기타
사용자 삽입 이미지

UCC 다바다 프로그램은 웹상에 보이는 UCC동영상을 내 컴퓨터로 파일로 저장해 주는 프로그램입니다.

이전 버전에서는 tv팟 경우 제대로 동작하지 않았지만 v1.3.4.3에서 개선 되었다고 합니다.

프로그램 다운로드는 아래 출처 페이지에서 받으세요!

[출처] 세이박스 - http://www.saybox.co.kr/bbs/board.php?bo_table=data&wr_id=20

HashToolsSetup 1.3.0 다운받은 파일 hash값 비교하는 프로그램

기타
HashToolsSetup 1.3.0 프로그램

사용자 삽입 이미지



다운로드 받은 파일이 제대로 잘 받아 졌는지 또는 원소스와 달리 임의로 수정된 파일은 아닌지 등을 검사하기 위해 hash 값을 비교 한다.

보통 MD5를 많이 이용하곤 했었는데 최근 리눅스 OS인 페도라 9버전을 다운 받고 시디를 구웠더니 설치가 안되는 낭패를 봤다.

그래서, 다운로드 받은 페이지에서 해시값도 같이 제공 해주는것을 확인하고 MD5로 해시값을 비교 했더니 값이 틀리게 나왔다.
그런데, 이상하게도 정상적으로 설치 되는 시디 까지도 틀리게 나왔다.
원인은 hash 타입이 틀리다는 것이었다. ㅡㅜ;

사용자 삽입 이미지

위 페이지에서 SHA1SUM 링크를 클릭하면 아래처럼 해시 값이 나타난다.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 <- Hash 타입 ㅡㅡ;

50253a35b5ba128c9a57b2a10cbd829813fc5119  Fedora-9-i386-DVD.iso
af25833a3babe1bd943dae16a1c17cf7a9e0b767  Fedora-9-i386-disc1.iso
d4ffbe83cd75bf0153e821af98b7e56f5b4f6c32  Fedora-9-i386-disc2.iso
579702ea19a5e4114186a665735823dd4b5269b6  Fedora-9-i386-disc3.iso
368e98bf95708d040f83be975c0ede372f32d44b  Fedora-9-i386-disc4.iso
67426850ce065a048d0a04eecb003b383b6f5830  Fedora-9-i386-disc5.iso
c01ccd2d3811ab1f04cacba63e51690b34629f95  Fedora-9-i386-disc6.iso
3b1df20ece05d64c34dd9c64400975b74eded0f2  Fedora-9-i386-netinst.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkgiX4AACgkQtEJp0E8qb9LLZACfZD/jeqvSfQRQM9EAzGku9mrK
EFwAnRdS28Q9onwS6rExI4vBrS0Ytpt/
=OG7t
-----END PGP SIGNATURE-----

위 내용을 자세히 보면 Hash 타입이 SHA1 이라는것을 확인하게 되었다.
이러한 타입 까지 비교 할려면 MD5는 안되고 첨부한 파일이 가능했다.

프로그램을 실행후 비교할 파일을 찾은뒤 해시 타입을 클릭만 해주시면 됩니다.
해시타입은 CRC32, MD5, SHA1, SHA256, SHA384, SHA512 등 다양하게 지원합니다.

참, 설치전 닷넷프레임워크 2.0 이상이 설치 되어 있어야 합니다.
아마도, 닷넷 프로그램으로 개발 했겠죠 (C#.NET OR C++.NET 등)

닷넷프래임 워크는 아래 주소로 가셔서 최신 버전을 다운받아서 설치 가능합니다.
http://msdn.microsoft.com/ko-kr/netframework/aa569263.aspx

ezRenamer ver 1.07 파일 및 폴더명 손쉽게 한번에 일괄 변경시 유용한 프로그램

기타
사용자 삽입 이미지

파일이나 폴더를 한번에 일괄 변경 하고자 할 때가 간혹 생기죠 이럴때 exRenamer 프로그램을 이용시 아주 손쉽게 바꿀수 있도록 해줍니다.

ezRenamer ver 1.07정식(11/20)


1. 프로그램 특징

  • 프로그램 파일 이름을 한번에 바꿀수 있다.
  • 오른쪽 창의 내용을 카피하여 다른 창에서 편집후 다시 붙여 사용가능.
  • 화일 이름 바꾸기를 문서편집기처럼 편하게 사용가능.
  • 설치할 필요없구 그냥 실행.
  • 사이즈 변환 가능
  • 이전에 바꾼 내용 기억.
  • 안 바꿔지던 버그를 수정(6/7update)
  • 화일 앞부분에 앨범이름등을 넣을 수 있다.(6/7update)
  • 이전에 바꿨던 내용은 리스트에 더이상 추가하지 않음.(6/7update)
  • 되돌리기 기능으로 100번까지 가능.(단, 화일 이름을 바꾸면 되돌릴수 없음)(6/7update)


    2. 사용법

    1) 왼쪽 뷰에서 바꿀 디렉토리를 선택한다. 오른쪽 화면에 파일 이름이 생성된다.
    2) 화일 이름을 입맛에 맞게 편집한다.
    3) "이름 바꾸기" 버튼을 눌러 바꾼다.
    4) 탐색기를 통하여 보면 이쁘게 이름이 바껴있을 것이다.
    5) "임시 바꾸기"는 같은 문자를 한꺼번에 다른 문자로 바꿀경우 사용.
    6) "처음에 넣기"를 이용하여 앨범이름을 일괄적으로 넣을수 있다.(6/7update)
    7) "이전으로"기능으로 이름 되돌리기 기능이 가능하다.(6/7update)
    8) "확장자바꾸기"를 이용하여 확장자를 무조건 바꿀수 있다.(11/20update)
    9) 키보드의 "Enter"는 "이름바꾸기" 또는 "처음에 넣기"버튼을 자동으로 눌러줍니다.(11/20update)


    * 개발자 : ezrenamer
    http://ezmuz.com
  • php upload 용량 늘리기

    웹프로그램
    업로드시 용량 제한으로 인해 업로드 되지 않는 경우가 있습니다.
    php.ini 파일을 수정해주시면 되는데
    기본 설정이 보통 2MB 로 되어 있습니다.
    php.ini 파일의 설치 경로에 따라 다를 수 있지만 대부분
    기본 경로는 /usr/local/php/lib/php.ini 에 보통 설치 합니다.
    해당 파일에서 아래 위치 부분들을 수정 해주시면 됩니다.

    파일 업로드 적용 여부
    file_uploads = On

    파일 업로드 최고 용량 지정 MB
    upload_max_filesize = 20M

    POST상에 전송되는 용량 지정 upload_max_filesize와 동일하게 맡혀 주시면 됩니다.
    post_max_size = 20M

    파일이 업로드 되는데 걸리는 시간 최대값, 300초면 5분정도이며 무한정 세션을 열어 주면 서버 부하가 많이 걸려 시간을 제한을 둡니다. 인터넷 느린 사용자를 감안해서 조금 넉넉하게 잡아 주시면 됩니다.
    예로 20MB 제한을 할경우 20MB 파일을 올려보세요!
    max_execution_time = 300

    업로드 동안 사용할 메모리? 용량 지정해줍니다.
    memory_limit = 20M

    수정후 아파치 재시작 하시면 됩니다. 

    인터넷에서 다운 파일중 확장자가 *.torrent 로 된것을 받을 경우

    컴활용
     
    *.torret 확장자의 경우 uTorrent 라는 프로그램으로 변환과정을 거치면 원래의 파일로 복구 됩니다.
     
    사용자 삽입 이미지
     
    메뉴에서 File > Add torrent 클릭후 다운받은 *.torrent 파일을 지정해주고 변환 시작하면 변환 과정을 %로 보여주고 완료 후 Completed(1) 폴더에서 변환된 파일 확인 가능 합니다.
     
    위 프로그램은 아래 주소에서 다운 받으시면 됩니다.

    Gif.ASA 파일 주의!

    서버,보안
    윈도우 서버에 Gif.ASA이 있으면 필히 소스를 확인 해보시기 바랍니다.
    VBScript-x.Encode 로 되어 있다면 Decode 프로그램으로 디코더 해서 보시면
    소스 내용이 서버의 파일을 수정 가능하게 하는 부분이 있을겁니다.
    반드시 제거 하셔야합니다.

    PHP 파일 업로드 관련 처리

    웹프로그램
    //이미지 등록할 폴더가 있는지 체크
     if(!is_dir($dir)) {
      mkdir($dir, 0755); //디렉토리 생성
      chmod($dir, 0755); //소유권 지정 한번더
     }
     
     // 이미지1 등록
     if($_FILES[img1][name]) {
      $filename = strtolower($_FILES[img1][name]);  //파일명을 소문자로 변환
      $ext = strtolower(substr($filename,-3));    //우측에서 3자리 확장자 가져옴
      $img_file1 = time().".".$ext;    //파일명을 Time스템프 값으로 변경
      if($ext == "jpg" or $ext == "gif") {
       move_uploaded_file($_FILES[img1][tmp_name], $dir."/".$img_file1);
       chmod($dir."/".$img_file1, 0704);    //업로드한 이미지 파일 소유권 지정
      } else {
       echo "<script-x>alert('등록 가능한 파일 타입이 아닙니다.\\n (*.gif, *.jpg)');history.back();</script-x>";
       exit();
      }
     }
     
    //$content 내용을 test.xml 파일로 저장하고자 할때
    $fname = "test.xml"
    $content = "abcdefg";
    $fp = fopen($fname, 'w');
    fwrite($fp, $xml_content);
    chmod($fname, 0777);
    fclose($fp);

    PHP 파일 다운받을때 한글파일문제 해결방법

    웹프로그램
    파일 다운받을때 한글파일문제 해결방법
     
    1. 우선 리스트가 출력되는 곳에서 해당 파일을 다운받기 위해 제목등에 링크를 거셨을 겁니다.
    거기서 다음의 사항을 추가 주세요 XXX.php?ext=1&name=한글명&path=해당 위치
    2. 다음으로 file를 다운받는 곳의 php파일 입니다.
    <?
    if ($ext == 1) { $ftype = "file/unknown"; }
    else { $ftype = "application/octet-stream"; }
    Header("Content-Disposition: attachment; filename=$name");
    Header("Content-Type: $ftype");
    Header("Content-Length: ".filesize("$path"));
    Header("Pragma: no-cache");
    Header("Expires: 0");
    if ($fp = fopen("$path", "r"))
    {
    print fread($fp, filesize("$path"));
    }
    fclose($fp);
    exit();
    ?>

    PHP 파일읽기 - fopen()

    웹프로그램
    1: 2: // get contents of a file into a string
    3: $filename = "/usr/local/something.txt"
    ;                // 불러올 파일
    4: $handle = fopen($filename, "r"
    );                       // 파일 열기
    5: $contents = fread($handle, filesize($filename
    ));       // 파일의 전체 내용을 읽어 $contents 변수에 담기
    6: fclose($handle
    );                                       // 파일 닫기
    7: echo($contents);
    ?>
     
    위 내용은 PHP매뉴얼 fread() 편에 수록된 예제입니다.
     
    4:라인에서 실제 파일의 존재여부나 읽기 오류 체크가 가능합니다.
    (예 - if (!($handle = fopen($filename, "r"))) exit('파일을 찾을 수 없습니다);
     
    5: 라인에서 사용한 fread()는 파일 전체의 내용을 한꺼번에 읽어옵니다만, 파일이 수MB에 달항 정도로 크면 시스템 자원을 많이 차지합니다. 따라서 다음과 같이 1라인씩(엔터가 있는곳까지) 읽어들여 처리할 수 있습니다.
    while (!feof($handle)) {
     
    $buffer = fgets($handle, 4096
    );      // 엔터가 있는곳까지 최대 4096byte를 읽어옵니다.
      echo
    $buffer
    ;                        // 읽은 라인을 출력합니다.
    }
    6: 라인은 열려져있는 파일을 닫습니다. 생략 할 경우 결과에는 문제 없지만 시스템 자원소모+파일손상 등의 결과를 초래할 수 있으니 반드시 넣어주시기 바랍니다.

    PHP 파일 내용 DB로 넣기

    웹프로그램
    <?
    include "$DOCUMENT_ROOT/php/common.php";
    if(!$conn) $conn=dbConn();

    $fp=fopen("kkk.txt",'r');

    while(!feof($fp)){
    $line=fgets($fp, 512);

    $aa=explode(",",$line);

    $name=Trim($aa[0]);
    $email=Trim($aa[1]);
    $phone=Trim($aa[2]);

    $qry="INSERT INTO beta_tester VALUES ('$name','$email','$phone')" or die(mysql_error()."->");
    //echo $qry.'<br>';
    mysql_query($qry);
    }

    fclose($fp);

    if($conn)$conn=dbClose($conn);
    ?>

    PHP 파일 생성

    웹프로그램

    $fp = @fopen("$DOCUMENT_ROOT/../log_txt/etc/216_".date("Ymd").".txt", "a");
    @fwrite($fp, date("Y/m/d(H:i:s)")."\t".$aa."\t".$HTTP_REFERER."\t".$HTTP_SERVER_VARS["HTTP_USER_AGENT"]."\t".$REMOTE_ADDR."\n");
    @fclose($fp);

    PHP 파일 다운로드

    웹프로그램
    $speed = 8.5; // 8,5 kb/s 비율로 다운로드를 받는다.
    $file=$DOCUMENT_ROOT.$file;
    if(file_exists($file) && is_file($file)) {
    header("Cache-control: private");
    header("Content-Type: audio/mp3");
    header("Content-Length: ".filesize($file));
    header("Content-Disposition: filename={$filename}");
    flush();

    $fp = fopen($file, "r");
    while(!feof($fp)) {
    echo fread($fp, round($speed*1024));
    flush();
    sleep(1);
    }
    fclose ($fp);
    }

    PHP POST 전송된 첨부파일 확장자 확인 하기

    웹프로그램

    $s_ext=substr($s_name,strrpos($s_name,".")+1);

    PHP FTP로 파일 업로드

    웹프로그램
    $ftp_server='kkk.net';//serverip
    $conn_id = @ftp_connect($ftp_server);

    // login with username and password
    $user="kkk";
    $passwd="aaa";
    $login_result = @ftp_login($conn_id, $user, $passwd);

    //directorylike /www.velibaba.com/images
    @ftp_chdir($conn_id, "public_html/report_files");

    // upload the file
    $upload = @ftp_put($conn_id, $filename, $file, FTP_BINARY);

    // close the FTP stream
    @ftp_close($conn_id);

    PHP registart 값 off 후 파일 업로드

    웹프로그램

    @extract($HTTP_SESSION_VARS);
    @extract($HTTP_COOKIE_VARS);
    @extract($HTTP_SERVER_VARS);
    @extract($HTTP_GET_VARS);
    @extract($HTTP_POST_VARS);
    @extract($HTTP_ENV_VARS);

    if($_FILES['file']['name']){
    $AllowExt='/\.alz|\.txt|\.psd|\.xls|\.gz|\.zip|\.bmp|\.doc|\.exe|\.dat|\.gif|\.htm?|\.hwp|\.pdf|\.ppt|\.rar|\.jp?g|\.tif|\.png/i';
    $rename=date("YmdHis");

    $saveDir="$DOCUMENT_ROOT/report_files/".date("Ym")."/";

    if(!is_dir($saveDir)) {
    $oldumask = umask(0);
    mkdir($saveDir, 0777); // or even 01777 so you get the sticky bit set
    umask($oldumask);

    //mkdir($saveDir, 0777);
    }

    if(!preg_match($AllowExt, $_FILES['file']['name'],$ext)) //확장자 비교
    AlertBack('업로드 금지 파일입니다.');

    $filename=$saveDir.$rename.$ext[0];

    if(!move_uploaded_file($_FILES['file']['tmp_name'],$filename))
    AlertBack('파일 업로드를 실패했습니다.');


    $filerename="http://".$SERVER_ADDR ."/report_files/".date("Ym")."/".basename($filename);
    }

    PHP 파일 업로드시 권한 설정

    웹프로그램

    if(!is_dir($saveDir)) {
    $oldumask = umask(0);
    mkdir($saveDir, 0777); // or even 01777 so you get the sticky bit set
    umask($oldumask);
    }

    이때...

    umask란 file이 생성될 때 사용할 file의 권한에 대해 mask를 인코딩하는 system 변수이다.

    보통 3자리로 표현이 되며 각각의 자리는 user, group, other의 권한을 나타낸다.

    umake의 값은 3자리의 8진수의 값이며 각각의 값은 1,2,4의 값은 AND 연산한 결과이다.

    0 : 사용자에게 모든 권한을 혀용.
    4 : 사용자에게 읽기 권한은 주지 않음.
    2 : 사용자에게 쓰기 권한을 주지 않음.
    1 : 사용자에게 실행 권한을 주지 않음.

    간단하게 예를 들어서 설명을 해 보면 umask 022 는 user에게는 모든 권한을 주며, group과 other에는 실행 권한과 읽기 권한만 주는 것이다.

    즉 -rwxr-xr-x의 퍼미션을 나타낸다.

    그러면 하나의 예를 더 들어 보면 -rxw--x--x 의 퍼미션을 지정하려면 group과 other에게 읽기와 쓰기의 권한을 주지 않는 2,4를 지정하는데 위에서 AND연산의 결과값이기 때문에 6이 된다. 즉 umask 066이 되는 것이다.

    img를 php 페이지로 부르기

    웹프로그램
    $file="../../upLoad/expose/".$row[filename];
    $img=@getimagesize($file);
    $img_type=$img[mime];

    Header("Content-Type: $img_type");

    $fp=fopen($file,"r"); //스트리밍 JPG,GIF일 경우

    $count = fread($fp, filesize($file));
    echo $count;

    PHP FTP 원격으로 파일 삭제

    웹프로그램

    $ftp_server_1="test.net";
    $ftp_user_name="test";
    $ftp_user_pass="testpwd";

    $file = "/home/public_html/test/".$pre_file;

    // set up basic connection
    $conn_id_1 = ftp_connect($ftp_server_1);

    // login with username and password
    $login_result_1 = ftp_login($conn_id_1, $ftp_user_name, $ftp_user_pass);

    // try to delete $file
    @ftp_delete($conn_id_1, $file);

    // close the connection
    ftp_quit($conn_id_1);

    PHP 원격으로 FTP 파일 업로드

    웹프로그램
    일단 서버에 FTP개정이 있어야 한다.

    $server_host_1="test.co.kr"; //-->원격서버의 ip주소
    $server_port="21"; //-->원격서버의 port
    $server_id="test"; //-->원격서버의 서버id
    $server_pw="testpwd"; //-->원격서버의 서버password

    //원격서버에 연결한다.
    if(!($fc_1 = ftp_connect($server_host_1, $server_port))) die("$server_host : $server_post - connect failed");

    //원격서버에 로그인한다.
    if(!ftp_login($fc_1, $server_id, $server_pw)) die("$server_id - login failed");

    //업로드할 폴더로 이동한다.
    $server_dir = "/home/public_html/test/";
    ftp_chdir($fc_1, $server_dir);

    //파일을 업로드 한다.
    if(!ftp_put($fc_1, $upload_img_name, $upload_img, FTP_BINARY))
    {

    echo" <script name=javascript> window.alert ('파일을 지정한 디렉토리로 복사 하는 데 실패했습니다._1');
    //history.go(-1)
    </script>";
    exit;

    }

    //FTP를 닫는다
    ftp_quit($fc_1);

    php 파일로 이미지 부르기

    웹프로그램

    $qry="select * from test where p_id=$p_id";
    $rs=mysql_query($qry) or die(mysql_error());
    $row=mysql_fetch_array($rs);
    $pic=$row[p_url];
    $up_hit=$row[p_hit]+1;

    $pic_header=getimagesize($pic);


    $qry_up="update test set p_hit=$up_hit where p_id=$p_id";
    mysql_query($qry_up)  or die('line14'.mysql_error());



    Header('Content-Type: image/$pic_header[mime]');

    /*$fp=fopen($pic,"r"); //스트리밍

    $count = fread($fp, filesize($pic));
    echo $count;
    */

    $im = imagecreatefromjpeg($pic);
    Imagejpeg($im,'',20);
    ImageDestroy($im);

    MYSQL 테이블을 화일로 백업 및 복구

    데이타베이스
    1. 테이블을 화일로 백업 및 복구

    -. 테이블 내용을 화일로 만들기

    mysql> select * from test into outfile '/root/test.txt';  꼭 경로를 지정해야함

    결과 :
    2 이주상 02-504-xxxx 과천시 m 1971-02-02
    3 임정남 02-420-xxxx 송파구 f 1971-03-03
    4 강행모 02-856-xxxx 관악구 f 1971-04-04
    5 이현영 0342-718-xxxx 분당구 m 1971-05-05
    6 이병환 02-891-xxxx 하안동 m 1980-06-06
    1 남상욱 333-4444 동작구 m 1971-01-01


    -. 테이블 내용을 화일로 만들때 |로 구분하기

    terminated 문을 쓴다.
    mysql> select * from test into outfile '/root/test.txt' fields terminated by '|';

    결과 :
    2|이주상|02-504-xxxx|과천시|m|1971-02-02
    3|임정남|02-420-xxxx|송파구|f|1971-03-03
    4|강행모|02-856-xxxx|관악구|f|1971-04-04
    5|이현영|0342-718-xxxx|분당구|m|1971-05-05
    6|이병환|02-891-xxxx|하안동|m|1980-06-06
    1|남상욱|333-4444|동작구|m|1971-01-01


    -. 화일을 불러오기
    load 명령어를 쓴다.
    mysql> load data infile '/root/test.txt' replace into table test fields terminated by '|';

    결과 :
    mysql> select * from test;
    +------+--------+---------------+--------+------+------------+
    | no | name | tel | addr | sex | birth |
    +------+--------+---------------+--------+------+------------+
    | 2 |이주상 | 02-504-xxxx | 과천시 | m | 1971-02-02 |
    | 3 | 임정남 | 02-420-xxxx | 송파구 | f | 1971-03-03 |
    | 4 | 강행모 | 02-856-xxxx | 관악구| f | 1971-04-04 |
    | 5 | 이현영 | 0342-718-xxxx | 분당구 | m | 1971-05-05 |
    | 6 | 이병환 | 02-891-xxxx | 하안동 | m | 1980-06-06 |
    | 1 |남상욱 | 333-4444 | 동작구 | m | 1971-01-01 |
    +------+--------+---------------+--------+------+------------+