업로드 이미지/외부 이미지, 또는 무 이미지에 따라 썸네일 처리

업로드 이미지/외부 이미지, 또는 무 이미지에 따라 썸네일 처리

QA

업로드 이미지/외부 이미지, 또는 무 이미지에 따라 썸네일 처리

답변 1

본문

변태스타킹 님의 

외부 이미지 썸네일 최신글 갤러리

https://sir.kr/g5_skin/28685

소스를 웹진게시판에서 고맙게도 잘 쓰고 있습니다.

 

이걸 이용해서 이미지가 있기도 하고 없기도 한 뉴스 형식의 게시판을 따로 만들려고 합니다.

 

업로드한 이미지가 있을수도 있고,

외부 이미지가 링크 된 경우도 있고,

아예 이미지가 없는 경우도 있는데,

 

이미지가 없는 경우는 꼭 이 부분에서 에러가 나는군요.

if (!file_exists($file_download)) {

        copy($src, $file_download);

 

이미지가 없는 겅우에도 이미지가 없는대로 이미지를 표시하지 않고 사용할수 있도록 좀 도와주십시오.

 

아래는 변태스타킹님의 소스입니다.

 


<?php
for ($i=0; $i<count($list); $i++) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height, false, true);
if($thumb['src']) {
    $img = $thumb['src'];
    
// 외부 이미지 썸네일 만들기 {
} else if($url_img = get_editor_image($list[$i]['wr_content'])) { 
    $img_src = $url_img[1][0];
    preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img_src, $m);
    $src = htmlspecialchars_decode($m[1]);
    preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $img_src, $m);
    $alt = get_text($m[1]);        
    $filename = hash("sha256", $src);
    $source_path = $target_path = G5_DATA_PATH.'/file/'.$bo_table;
    $file_download = $target_path."/".$filename;
    if (!file_exists($file_download)) {
        copy($src, $file_download);
    }                                        
    $thumb_src = thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_height, false, true);
    $img = G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb_src;
    $thumb['alt'] = $alt;
// } 외부 이미지 썸네일 만들기
    
} else {
    $img = G5_IMG_URL.'/no_img.png';
    $thumb['alt'] = '이미지가 없습니다.';
}
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
?>

이 질문에 댓글 쓰기 :

답변 1

참조 : https://sir.kr/so_cat


if (!file_exists($file_download)) {
        copy($src, $file_download);
} else {
        copy($default_src, $file_download);
}

조언해주셔서 감사합니다.

그런데, 이미지가 아예 없는 경우는 여전히

Warning: copy(): Filename cannot be empty in /storage/emulated/0/htdocs/gym5/skin/board/basic_zine/list.skin.php on line 80

라는 에러 메시자가 나오네요.
지적된 라인이 이 부분입니다.

copy($src, $file_download);

좋은 방법이 없을까요?

죄송합니다.  이부분은 다운로드 관련 부분이네요..

$img_src 가 "" 이면  $img_src에 디폴트 이미지를 넣어 보세요..

상세한 것은 디버깅으로 각 변수를 찍어 보시는 것을 추천드립니다

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 774
© SIRSOFT
현재 페이지 제일 처음으로