고양이 여름이의 지식채널

PHP 파일 업로드, 다운로드 예제 본문

Programming/PHP

PHP 파일 업로드, 다운로드 예제

썸머캣 2023. 2. 13. 00:18

PHP를 이용한 파일 업로드와 다운로드 코드 예제입니다.

 


Upload

아래는 업로드 예제입니다.

<?php
// form 을 체크
if(isset($_POST['submit'])){
    // 파일 정보를 가져옵니다
    $file = $_FILES['file'];
    
    // 파일 속성
    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];
    
    // 파일 확장자
    $file_ext = explode('.', $file_name);
    $file_ext = strtolower(end($file_ext));
    
    // 허용 확장자
    $allowed = array("jpg", "jpeg", "png");
    
    // error 체크
    if($file_error === 0){
        // 허용 확장자 체크
        if(in_array($file_ext, $allowed)){
            // 파일 사이즈 체크
            if($file_size <= 2097152){
                // 새 파일 이름 생성
                $file_name_new = uniqid('', true) . '.' . $file_ext;
                
                // 위치
                $file_destination = 'uploads/' . $file_name_new;
                
                // 파일을 업로드 폴더로 이동
                if(move_uploaded_file($file_tmp, $file_destination)){
                    echo "File uploaded successfully.";
                }
            }
        }
    }
}
?>

// 파일 전송 form
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" name="submit">
</form>

위의 예제에서는 업로드된 파일을 임시 위치에서, 지정된 위치로 이동하는 move_uploaded_file 함수를 사용하여 파일을 업로드합니다. 위치는 업로드/폴더로 설정된 $file_destination 변수로 정의됩니다.
위의 코드와 같이 업로드하기 전에 파일 정보의 유효성을 확인하는 것이 중요합니다. 파일 크기와 확장자가 허용된 제한이있는지 확인합니다.

 

반응형

 

Download

다음은 파일을 다운로드 예제입니다.

<?php
// 파일 이름 가져오기
$file = $_GET['file'];

// 파일 위치
$file_path = "downloads/$file";

// 파일 존재여부 체크
if(file_exists($file_path)){
    // 파일 열기
    $fp = fopen($file_path, 'rb');

    // header 설정
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Length: " . filesize($file_path));

    // 파일을 읽고 브라우저로 전송
    fpassthru($fp);
    exit;
}
?>

이 예제에서는 파일 이름을 매개 변수로 포함하여 PHP 스크립트로 GET 요청을 전송하여 파일을 다운로드합니다.

일단 파일 경로를 $file_path 변수에 저장됩니다. file_exists 함수는 파일을 다운로드하기 전에 파일이 존재하는지 확인하는 데 사용됩니다. 그런 다음 fopen 기능을 사용, fopen은 파일을 열어서 읽을 수 있습니다. 헤더 기능은 다운로드의 콘텐츠 유형, 콘텐츠 배치 및 콘텐츠 길이를 설정하는 데 사용됩니다.

마지막으로 fpassthru 함수는 파일의 내용을 읽고 다운로드를 위해 브라우저로 전송하는 데 사용됩니다.

 


 

 

 

PHP 세션, 쿠키, 인증 (Session, Cookie, and Authentication)

 

PHP 세션, 쿠키, 인증 (Session, Cookie, and Authentication)

이번 게시물에서는 PHP에서 사용자 인증을 처리하는 데 사용되는 세 가지 주요 기술인 세션, 쿠키 및 인증에 대해 알아보겠습니다. 이 3가지 기술은 안전하고 확장 가능한 웹 애플리케이션을 구

summer-cat93.tistory.com

 

728x90
반응형
Comments