이번 포스트에서는 PHP를 사용해서 웹 애플리케이션에 파일을 업로드하는 방법과 업로드된 파일의 MIME 타입을 변경하는 방법에 대해 알아보겠습니다.
파일 업로드
웹 애플리케이션에서 사용자가 파일을 업로드하는 기능은 매우 일반적입니다. PHP에서는 $_FILES
슈퍼글로벌 변수를 사용하여 파일 업로드를 처리할 수 있습니다.
아래는 간단한 파일 업로드 폼과 PHP 스크립트의 예시입니다.
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="업로드">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$uploads_dir = '/uploads';
$tmp_name = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
echo '파일이 업로드되었습니다.';
}
?>
위의 예시에서는 파일 업로드 폼과 PHP 스크립트를 사용하여 파일 업로드를 처리하는 방법을 보여줍니다.
파일 MIME 타입 변경
업로드된 파일의 MIME 타입을 변경하는 경우에는 finfo_file
함수를 사용하여 파일의 형식을 확인하고, 필요에 따라 MIME 타입을 변경할 수 있습니다.
아래는 MIME 타입을 변경하는 예시입니다.
<?php
$filePath = '/uploads/example.jpg';
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$originalMimeType = finfo_file($finfo, $filePath);
// MIME 타입을 변경
$newMimeType = 'image/png';
header('Content-Type: ' . $newMimeType);
// 변경된 MIME 타입으로 파일 출력
readfile($filePath);
?>
위의 예시에서는 finfo_file
함수를 사용하여 파일의 MIME 타입을 확인하고, header
함수를 사용하여 새로운 MIME 타입으로 파일을 출력하는 방법을 보여줍니다.
이렇게 PHP를 사용하여 파일을 업로드하고, 업로드된 파일의 MIME 타입을 변경할 수 있습니다. 파일 업로드 시 보안에 주의하여야 하며, 업로드된 파일의 MIME 타입을 확인하여 악의적인 파일을 필터링하는 것이 중요합니다.
결론
이번 포스트에서는 PHP를 사용한 파일 업로드와 파일 MIME 타입 변경에 대해 알아보았습니다. 파일 업로드는 웹 애플리케이션에서 사용자가 파일을 업로드하는 기능으로 매우 일반적이며, 파일의 MIME 타입을 변경하는 것은 파일을 다룰 때 유용한 기능 중 하나입니다. 파일 업로드와 MIME 타입 변경을 잘 활용하여 보다 안전하고 다양한 기능을 제공하는 웹 애플리케이션을 개발할 수 있습니다.
참고문헌: PHP 공식 문서