Example #1
0
/**
 * 上传图片的缩略图
 * @param $metadata
 * @return array
 */
function upload_thumbs($metadata)
{
    //上传所有缩略图
    if (isset($metadata['sizes']) && count($metadata['sizes']) > 0) {
        //获取OSS插件的配置信息
        $oss_options = get_option('oss_options', TRUE);
        //是否需要上传缩略图
        $nothumb = attribute_escape($oss_options['nothumb']) == 'true';
        //是否需要删除本地文件
        $is_delete_local_file = attribute_escape($oss_options['nolocalsaving']) == 'true';
        //如果禁止上传缩略图,就不用继续执行了
        if ($nothumb) {
            return $metadata;
        }
        //获取上传路径
        $wp_uploads = wp_upload_dir();
        //得到本地文件夹和远端文件夹
        $file_path = $wp_uploads['path'] . '/';
        if (get_option('upload_path') == '.') {
            $file_path = str_replace("./", '', $file_path);
        }
        $object_path = str_replace(get_home_path(), '', $file_path);
        //there may be duplicated filenames,so ....
        foreach ($metadata['sizes'] as $val) {
            //生成object在OSS中的存储路径
            $object = $object_path . $val['file'];
            //生成本地存储路径
            $file = $file_path . $val['file'];
            //设置可选参数
            $opt = array('Content-Type' => $val['mime-type']);
            //执行上传操作
            _file_upload($object, $file, $opt);
            //_logged('2thumb.txt',"object=$object;file=$file");
            //如果不在本地保存,则删除
            if ($is_delete_local_file) {
                _delete_local_file($file);
            }
        }
    }
    return $metadata;
}
/**
 * 上传图片的缩略图
 */
function upload_thumbs($metadata)
{
    //上传所有缩略图
    if (isset($metadata['sizes']) && count($metadata['sizes']) > 0) {
        //获取COS插件的配置信息
        $cos_options = get_option('cos_options', TRUE);
        //是否需要上传缩略图
        $nothumb = esc_attr($cos_options['nothumb']) == 'true';
        //是否需要删除本地文件
        $is_delete_local_file = esc_attr($cos_options['nolocalsaving']) == 'true';
        //如果禁止上传缩略图,就不用继续执行了
        if ($nothumb) {
            return $metadata;
        }
        //获取上传路径
        $wp_uploads = wp_upload_dir();
        $basedir = $wp_uploads['basedir'];
        $file_dir = $metadata['file'];
        //得到本地文件夹和远端文件夹
        $file_path = $basedir . '/' . dirname($file_dir) . '/';
        if (get_option('upload_path') == '.') {
            $file_path = str_replace("\\", '/', $file_path);
            $file_path = str_replace(get_home_path() . "./", '', $file_path);
        } else {
            $file_path = str_replace("\\", '/', $file_path);
        }
        $object_path = str_replace(get_home_path(), '', $file_path);
        //there may be duplicated filenames,so ....
        foreach ($metadata['sizes'] as $val) {
            //生成object在COS中的存储路径
            $object = '/' . $object_path . $val['file'];
            //生成本地存储路径
            $file = $file_path . $val['file'];
            //设置可选参数
            $opt = array('Content-Type' => $val['mime-type']);
            //执行上传操作
            _file_upload($object, $file, $opt);
            //如果不在本地保存,则删除
            if ($is_delete_local_file) {
                _delete_local_file($file);
            }
        }
    }
    return $metadata;
}