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, '远程附件上传失败,请检查配置并重新上传'); } } }
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; } } }
} $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'); }
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, '远程附件上传失败,请检查配置并重新上传'); } } }