인계받은 소스를 유지보수 하던 중, 이미지 파일을 올리는데, 자꾸 오류가 나서 확인해보니
단순히 업로드 된 파일 확장자를 가지고 이미지의 종류를 구분하고 있었다

실제 파일은 jpg인데, 확장자를 png로 했더니 인식을 못해서 계속 오류가 나는 것이었다

이미지 구분을 getimagesize() 함수를 통해 간단히 해결할 수 있다

$size = @getimagesize($file);
if ($size && $size["mime"])
    $extension = ".".explode("/", $size["mime"])[1];

1. libpng 라이브러리 업데이트
- 현재 XAMPP 8.0.x에서 설치되는 libPNG버전이 1.6.34인데, 동일한 오류 발생.
- 검색해보니 버전이 올라가도 안된다는 말이 있고, 1.6.34보다 더 높은 버전을 설치하면 된다는 말도 있음
- 결론은 최신 소스를 다운로드하여 make 빌드해서 설치
- 하지만 여전히 안되서 2번 방법시도하여 성공

2. ImageMagick 사용

magick convert -interlace none path/to/source-image.png path/to/target-image.png

'develop > PHP' 카테고리의 다른 글

업로드한 파일 구분  (0) 2024.05.21

+ Recent posts