Notice
Recent Posts
Recent Comments
Link
고양이 여름이의 지식채널
PHP 파일 업로드, 다운로드 예제 본문
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)
728x90
반응형
Comments