nginx 구성:
코드 복사 코드는 다음과 같습니다.
# 서버에 abc.jpg 파일이 있고 http://filefs.domain.com을 통해 원본 이미지에 액세스할 수 있다고 가정합니다. /파일/abc.jpg. 실제로 일반적으로 데이터베이스에는 "/file/abc.jpg"의 내용만 저장합니다.
#이제, http://filefs.domain.com/file/abc.jpg.w320을 통해 서버에서 썸네일 #abc.jpg.w320.jpg(w320, 320px 너비)가 자동으로 생성된다는 점을 알아야 합니다. jpg. 이미지 데이터를 반환합니다.
# 다음 두 가지 조건이 충족되어야 합니다.
# 1. abc.jpg.w320.jpg가 있으면 이미지가 다시 생성되지 않습니다.
# 2. 존재하지 않으면 이미지 데이터가 반환되어 다음 폴더에 저장됩니다. 동일한 이미지 파일을 서버에 요청합니다.
서버 {
수신 80;
server_name filefs.domain.com;
루트 /var/www/http/filefs.domain.com;
위치 / {
index index.html index.htm;
}
위치 ~ .( png|jpg|jpeg|gif)$ {
#파일이 없으면 그림을 생성하는 스크립트 파일 autoimg.php에 다시 작성하세요. > PHP; Expires Max
}
#파일이 존재하는 경우 만료를 설정합니다. 시간이 지나면 액세스 로그를 닫습니다.
(-f $ request_filename) {
만료 최대
access_log off 00 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html ;
}
위치 ~ autoimg.php$ {#보안상의 이유로 파일 서버에서는 이 스크립트 파일의 범위만 제출합니다. PHP로 처리
fastcgi_pass 127.0.0.1:9000; 통해 사용 통해 사용 사용 통해 사용 사용 통해 아웃 out out out out out out out out out out out out out of when to - /usr/local/nginx/conf/fastcgi_params;
}
}
이미지 파일을 생성하는 PHP 코드:
코드 복사 코드는 다음과 같습니다
$file = $_server ['request_uri'];//요청 string/file/abc.jpg.w320.jpg
$desfile = $_server ['document_root'] //대상 대상; path/var/www/http/file/abc.jpg.w320.jpg
$dirname = dirname ($desfile) . "/";
$filename = basename ($desfile);
if (preg_match ( "/( [ ^.]+.(png|jpg|jpeg|gif)).w([d]+).(jpg)/i", $filename, $m )) {
$srcfile = $dirname . $m [ 1 ];
$width = $m [3]; //출력 파일 너비 일치
320
320
( $srcfile )) { //파일이 존재하지 않습니다
썸네일 ( $srcfile, $desfile, $width ) ; width) {b ob_start (); // 출력 스트림 차단 시작
$ ImageInfos = getimagesize ($ src);
$ ext = StrTolower (Pathinfo ($ SRC, 4)) {
$im = imagecreatefromgif ( $src);
{ ~ $dst_img = imagecreatetruecolor ( $width ( dst_img, 0, 0, $trans_colour );
$dst _img, $im, 0, 0, 0, 0, $width, $height, $imageinfos [0], $imageinfos [1] );
헤더( 'content-type:image/jpg' );
imagejpeg($dst_img, null, 90); 스트림, 90--압축 품질, 100은 최고 품질을 나타냅니다. } }
8 //출력 흐름 웹 페이지로 이동하여 첫 번째 요청에 이미지 데이터가 다시 삽입되도록 합니다
@file_put_contents ($des, $content);//파일 저장
}
?>
렌더링:
위 내용은 Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!