diff --git a/upload/source/function/function_block.php b/upload/source/function/function_block.php index 48fa759d81da3aadf732d915e6fe64569f60e3e4..b33a2a8bdcbf9225c2ba6107fd4493d81dfdbff4 100644 --- a/upload/source/function/function_block.php +++ b/upload/source/function/function_block.php @@ -388,16 +388,24 @@ function block_template($bid) { } } elseif($field['datatype'] == 'pic') { if($blockitem['picflag'] == '1') { - $replacevalue = $_G['setting']['attachurl'].$replacevalue; + if(!$_G['setting']['ftp']['on'] || file_exists($_G['setting']['attachdir'].$replacevalue)) { + $replacevalue = $_G['setting']['attachurl'].$replacevalue; + } else { + $replacevalue = (preg_match('/^https?:\/\//is', $replacevalue) ? '' : $_G['setting']['ftp']['attachurl']).$replacevalue; + } } elseif ($blockitem['picflag'] == '2') { - $replacevalue = $_G['setting']['ftp']['attachurl'].$replacevalue; + $replacevalue = (preg_match('/^https?:\/\//is', $replacevalue) ? '' : $_G['setting']['ftp']['attachurl']).$replacevalue; } if($blockitem['picflag'] && $block['picwidth'] && $block['picheight'] && $block['picwidth'] != 'auto' && $block['picheight'] != 'auto') { if($blockitem['makethumb'] == 1) { if($blockitem['picflag'] == '1') { - $replacevalue = $_G['setting']['attachurl'].$blockitem['thumbpath']; + if(!$_G['setting']['ftp']['on'] || file_exists($_G['setting']['attachdir'].$blockitem['thumbpath'])) { + $replacevalue = $_G['setting']['attachurl'].$blockitem['thumbpath']; + } else { + $replacevalue = (preg_match('/^https?:\/\//is', $blockitem['thumbpath']) ? '' : $_G['setting']['ftp']['attachurl']).$blockitem['thumbpath']; + } } elseif ($blockitem['picflag'] == '2') { - $replacevalue = $_G['setting']['ftp']['attachurl'].$blockitem['thumbpath']; + $replacevalue = (preg_match('/^https?:\/\//is', $blockitem['thumbpath']) ? '' : $_G['setting']['ftp']['attachurl']).$blockitem['thumbpath']; } } elseif(!$_G['block_makethumb'] && !$blockitem['makethumb']) { C::t('common_block_item')->update($itemid, array('makethumb'=>2)); @@ -411,6 +419,8 @@ function block_template($bid) { $picflag = 1; //common_block_pic表中的picflag标识(0本地,1远程) $_G['block_makethumb'] = true; @unlink($_G['setting']['attachdir'].'./'.$thumbpath); + C::t('common_block_item')->update($itemid, array('picflag' => 2)); + $replacevalue = (preg_match('/^https?:\/\//is', $thumbpath) ? '' : $_G['setting']['ftp']['attachurl']).$thumbpath; } } elseif(file_exists($_G['setting']['attachdir'].$thumbpath) || ($return = $image->Thumb($replacevalue, $thumbpath, $block['picwidth'], $block['picheight'], 2))) { $picflag = 0; //common_block_pic表中的picflag标识(0本地,1远程)