Exemplo n.º 1
0
function file_remote_upload($filename, $auto_delete_local = true)
{
    global $_W;
    if (empty($_W['setting']['remote']['type'])) {
        return false;
    }
    if ($_W['setting']['remote']['type'] == '1') {
        require_once IA_ROOT . '/framework/library/ftp/ftp.php';
        $ftp_config = array('hostname' => $_W['setting']['remote']['ftp']['host'], 'username' => $_W['setting']['remote']['ftp']['username'], 'password' => $_W['setting']['remote']['ftp']['password'], 'port' => $_W['setting']['remote']['ftp']['port'], 'ssl' => $_W['setting']['remote']['ftp']['ssl'], 'passive' => $_W['setting']['remote']['ftp']['pasv'], 'timeout' => $_W['setting']['remote']['ftp']['timeout'], 'rootdir' => $_W['setting']['remote']['ftp']['dir']);
        $ftp = new Ftp($ftp_config);
        if (true === $ftp->connect()) {
            $response = $ftp->upload(ATTACHMENT_ROOT . '/' . $filename, $filename);
            if ($auto_delete_local) {
                file_delete($filename);
            }
            if (!empty($response)) {
                return true;
            } else {
                return error(1, '远程附件上传失败,请检查配置并重新上传');
            }
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    } elseif ($_W['setting']['remote']['type'] == '2') {
        require_once IA_ROOT . '/framework/library/alioss/sdk.class.php';
        $oss = new ALIOSS($_W['setting']['remote']['alioss']['key'], $_W['setting']['remote']['alioss']['secret'], $_W['setting']['remote']['alioss']['ossurl']);
        $options = array(ALIOSS::OSS_FILE_UPLOAD => ATTACHMENT_ROOT . $filename, ALIOSS::OSS_PART_SIZE => 5242880);
        $response = $oss->create_mpu_object($_W['setting']['remote']['alioss']['bucket'], $filename, $options);
        if ($auto_delete_local) {
            file_delete($filename);
        }
        if ($response->status == 200) {
            return true;
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    }
}
Exemplo n.º 2
0
function file_remote_upload($filename, $auto_delete_local = true)
{
    global $_W;
    if (empty($_W['setting']['remote']['type'])) {
        return false;
    }
    if ($_W['setting']['remote']['type'] == '1') {
        require_once IA_ROOT . '/framework/library/ftp/ftp.php';
        $ftp_config = array('hostname' => $_W['setting']['remote']['ftp']['host'], 'username' => $_W['setting']['remote']['ftp']['username'], 'password' => $_W['setting']['remote']['ftp']['password'], 'port' => $_W['setting']['remote']['ftp']['port'], 'ssl' => $_W['setting']['remote']['ftp']['ssl'], 'passive' => $_W['setting']['remote']['ftp']['pasv'], 'timeout' => $_W['setting']['remote']['ftp']['timeout'], 'rootdir' => $_W['setting']['remote']['ftp']['dir']);
        $ftp = new Ftp($ftp_config);
        if (true === $ftp->connect()) {
            $response = $ftp->upload(ATTACHMENT_ROOT . '/' . $filename, $filename);
            if ($auto_delete_local) {
                file_delete($filename);
            }
            if (!empty($response)) {
                return true;
            } else {
                return error(1, '远程附件上传失败,请检查配置并重新上传');
            }
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    } elseif ($_W['setting']['remote']['type'] == '2') {
        require_once IA_ROOT . '/framework/library/alioss/sdk.class.php';
        $oss = new ALIOSS($_W['setting']['remote']['alioss']['key'], $_W['setting']['remote']['alioss']['secret'], $_W['setting']['remote']['alioss']['ossurl']);
        $options = array(ALIOSS::OSS_FILE_UPLOAD => ATTACHMENT_ROOT . $filename, ALIOSS::OSS_PART_SIZE => 5242880);
        $response = $oss->create_mpu_object($_W['setting']['remote']['alioss']['bucket'], $filename, $options);
        if ($auto_delete_local) {
            file_delete($filename);
        }
        if ($response->status == 200) {
            return true;
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    } elseif ($_W['setting']['remote']['type'] == '3') {
        require_once IA_ROOT . '/framework/library/qiniu/autoload.php';
        $auth = new Qiniu\Auth($_W['setting']['remote']['qiniu']['accesskey'], $_W['setting']['remote']['qiniu']['secretkey']);
        $uploadmgr = new Qiniu\Storage\UploadManager();
        $putpolicy = Qiniu\base64_urlSafeEncode(json_encode(array('scope' => $_W['setting']['remote']['qiniu']['bucket'] . ':' . $filename)));
        $uploadtoken = $auth->uploadToken($_W['setting']['remote']['qiniu']['bucket'], $filename, 3600, $putpolicy);
        list($ret, $err) = $uploadmgr->putFile($uploadtoken, $filename, ATTACHMENT_ROOT . '/' . $filename);
        if ($err !== null) {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        } else {
            return true;
        }
    }
}
Exemplo n.º 3
0
 }
 $ossurl = $buckets[$bucket]['location'] . '.aliyuncs.com';
 if (!empty($_GPC['url'])) {
     if (!strexists($_GPC['url'], 'http://') && !strexists($_GPC['url'], 'https://')) {
         $url = 'http://' . trim($_GPC['url']);
     } else {
         $url = trim($_GPC['url']);
     }
     $url = trim($url, '/') . '/';
 } else {
     $url = 'http://' . $bucket . '.' . $buckets[$bucket]['location'] . '.aliyuncs.com/';
 }
 $oss = new ALIOSS($_GPC['key'], $_GPC['secret'], $ossurl);
 $filename = 'MicroEngine.ico';
 $options = array(ALIOSS::OSS_FILE_UPLOAD => ATTACHMENT_ROOT . 'images/global/' . $filename, ALIOSS::OSS_PART_SIZE => 5242880);
 $response = $oss->create_mpu_object($bucket, $filename, $options);
 if ($response->status == 200) {
     load()->func('communication');
     $response = ihttp_get($url . $filename);
     if (is_error($response)) {
         message(error(-1, '配置失败,阿里云访问url错误'), '', 'ajax');
     }
     if (intval($response['code']) != 200) {
         message(error(-1, '配置失败,阿里云访问url错误,请保证bucket为公共读取的'), '', 'ajax');
     }
     $image = getimagesizefromstring($response['content']);
     if (!empty($image) && strexists($image['mime'], 'image')) {
         message(error(0, '配置成功'), '', 'ajax');
     } else {
         message(error(-1, '配置失败,阿里云访问url错误'), '', 'ajax');
     }
Exemplo n.º 4
0
function file_remote_upload($filename)
{
    global $_W;
    if (empty($_W['setting']['remote']['type'])) {
        return false;
    }
    if ($_W['setting']['remote']['type'] == '1') {
        require IA_ROOT . '/framework/library/ftp/ftp.php';
        $remoteConfig = array('hostname' => $_W['setting']['remote']['ftp']['host'], 'username' => $_W['setting']['remote']['ftp']['username'], 'password' => $_W['setting']['remote']['ftp']['password'], 'port' => $_W['setting']['remote']['ftp']['port'], 'ssl' => $_W['setting']['remote']['ftp']['ssl'], 'passive' => $_W['setting']['remote']['ftp']['pasv'], 'timeout' => $_W['setting']['remote']['ftp']['timeout']);
        $ftp = new Ftp($remoteConfig);
        if (true === $ftp->connect()) {
            $pathinfo = pathinfo($filename);
            $dirs = explode('/', $_W['setting']['remote']['ftp']['dir'] . '/' . $pathinfo['dirname']);
            $dir = '';
            foreach ($dirs as $row) {
                if (!empty($row)) {
                    $dir .= '/' . $row;
                    $ftp->mkdir($dir);
                }
            }
            $desfile = $_W['setting']['remote']['ftp']['dir'] . '/' . $filename;
            if ($ftp->upload(ATTACHMENT_ROOT . '/' . $filename, $desfile)) {
                return true;
            } else {
                return error(1, '远程附件上传失败,请检查配置并重新上传');
            }
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    } elseif ($_W['setting']['remote']['type'] == '2') {
        require IA_ROOT . '/framework/library/alioss/sdk.class.php';
        $oss = new ALIOSS($_W['setting']['remote']['alioss']['key'], $_W['setting']['remote']['alioss']['secret'], $_W['setting']['remote']['alioss']['url'] . '.aliyuncs.com');
        $options = array(ALIOSS::OSS_FILE_UPLOAD => ATTACHMENT_ROOT . '/' . $filename, ALIOSS::OSS_PART_SIZE => 5242880);
        $response = $oss->create_mpu_object($_W['setting']['remote']['alioss']['bucket'], $filename, $options);
        if ($response->status == 200) {
            return true;
        } else {
            return error(1, '远程附件上传失败,请检查配置并重新上传');
        }
    }
}