일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- android 효과음
- xe
- 폼메일
- 자동 생성
- soundpool
- C#
- chart.js
- php 취약점
- C# IO
- PHP
- php 시큐어코딩
- roundcube
- Mail Server
- 안드로이드 푸쉬
- javascript
- curl
- 우분투
- 안드로이드
- Android
- mysql
- not working
- 안드로이드 gcm
- dovecot
- UML
- 안드로이드 푸시
- 설치
- WebView
- html5
- FCM
- 자바스크립트
- Today
- Total
그러냐
PHP - Invalid SOS parameters for sequential JPEG 오류 해결 본문
겔럭시에서 이미지편집? 후에 업로드할때 확장자는 jpg 파일이지만 뭔가 다른가보다
그래서 편집된 이미지파일, 이를테면 사진위에 무언가 첨가한 이미지 같은 경우 업로드하면 검정이미지파일로 업로드 된다
리사이징하는 과정에서 에러가 나는 듯
찾아보니 아래와 같이 해결 가능하다
출처 : https://blog.asamaru.net/2016/03/25/php-invalid-sos-parameters-for-sequential-jpeg/
PHP에서 GD를 이용해서 jpg 이미지를 처리할 때 아래와 같은 오류를 만날 수 있다. 나의 경우는 안드로이드에서 jpg 이미지를 PHP로 전송해서 처리하는 과정에서 이 오류를 만났다(안드로이드여 사라져라).
Warning: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Invalid SOS parameters for sequential JPEG
이 오류는 PHP Bugs에 Bug #39918 imagecreatefromjpeg doesn't work라는 글로도 등록되어 있다. 일단 PHP Bugs에서는 버그가 아닌 것으로 분류해 놓았지만 대부분의 다른 커뮤니티들에서는 버그라고 이야기하고 있다.
어쨌든 해결 방법은 아래와 같다.
@ini_set('gd.jpeg_ignore_warning', 1);
위 코드를 imagecreatefromjpeg를 사용하기 전에 넣으면 된다(그냥 맨 위쪽). 아니면 php.ini에 위 내용을 형식에 맞게 추가해도 된다.
그런데 문제는 이것만으로는 완전히 해결이 되지 않을 수 있다. 아래와 같은 오류가 추가적으로 날 수 있다.
Warning: imagecreatefromjpeg(): '/tmp/php6eEm0r' is not a valid JPEG file in ~~
따라서 위 처리 외에도 imagecreatefromjpeg 사용시 @를 붙여 아래와 같이 사용해야 한다.
$source = @imagecreatefromjpeg($sourcePath);
@를 사용하는 것은 권장되지 않지만 이 경우는 어쩔 수 없다(오류 출력 범위를 변경하는 등의 방법이 있으나 이 부분만 이렇게 처리하는게 낫다).
이렇게 처리하고 나면 기능이 원하는대로 정상 동작한다(not a valid JPEG file라고 했지만 실제로는 정상적인 jpg 파일이므로)
'php' 카테고리의 다른 글
스마트에디터 파일중복 방지/ 사진첨부시 사진이름 중복방지 prevent duplication of image name in smart editor (0) | 2023.03.31 |
---|---|
php 다차원 배열 랭크 정렬등 (0) | 2023.02.02 |
페이지 이동시 checkbox 유지 (0) | 2022.09.07 |
php linux cron 실행 안됨 (0) | 2021.11.29 |
php html to pdf 변환 (한글?) (0) | 2021.10.07 |