本文整理汇总了PHP中HTTPClient::sendRequest方法的典型用法代码示例。如果您正苦于以下问题:PHP HTTPClient::sendRequest方法的具体用法?PHP HTTPClient::sendRequest怎么用?PHP HTTPClient::sendRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HTTPClient
的用法示例。
在下文中一共展示了HTTPClient::sendRequest方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendRequest
/**
* Wraps an event around the parent function
*
* @triggers HTTPCLIENT_REQUEST_SEND
* @author Andreas Gohr <andi@splitbrain.org>
*/
function sendRequest($url, $data = '', $method = 'GET')
{
$httpdata = array('url' => $url, 'data' => $data, 'method' => $method);
$evt = new Doku_Event('HTTPCLIENT_REQUEST_SEND', $httpdata);
if ($evt->advise_before()) {
$url = $httpdata['url'];
$data = $httpdata['data'];
$method = $httpdata['method'];
}
$evt->advise_after();
unset($evt);
return parent::sendRequest($url, $data, $method);
}
示例2: sendRequest
/**
* Retries sending the request multiple times
*
* @param string $url
* @param string $data
* @param string $method
* @return bool
*/
function sendRequest($url, $data = '', $method = 'GET')
{
$this->tries = 2;
// configures the number of retries
$return = false;
while ($this->tries) {
$return = parent::sendRequest($url, $data, $method);
if ($this->status != -100) {
break;
}
$this->tries--;
}
return $return;
}
示例3: macro_ImageFileSize
function macro_ImageFileSize($formatter, $value = '', $params = array())
{
global $Config;
if (empty($value)) {
return '';
}
$sz = 0;
// check if it is valid or not
while (preg_match('/^((?:https?|ftp):\\/\\/.*(\\.(?:jpg|jpeg|gif|png)))(?:\\?|&)?/i', $value, $m)) {
$value = $m[1];
// check the file size saved by the fetch plugin
$si = new Cache_text('fetchinfo');
if ($si->exists($value) && ($info = $si->fetch($value)) !== false) {
$sz = $info['size'];
break;
}
$sc = new Cache_text('imagefilesize');
if (empty($params['.refresh']) and $sc->exists($value) and $sc->mtime($value) < time() + 60 * 60 * 24 * 20) {
$sz = $sc->fetch($value);
} else {
// dynamic macro
if ($formatter->_macrocache and empty($params['call'])) {
return $formatter->macro_cache_repl('ImageFileSize', $value);
}
if (empty($params['call'])) {
$formatter->_dynamic_macros['@ImageFileSize'] = 1;
}
// do not fetch the size of image right now. just fetch the cached info by the fetch plugin
if (empty($params['call']) and !empty($Config['fetch_imagesize']) and $Config['fetch_imagesize'] == 2) {
return _("Unknown");
}
require_once dirname(__FILE__) . '/../lib/HTTPClient.php';
$http = new HTTPClient();
// support proxy
if (!empty($Config['proxy_host'])) {
$http->proxy_host = $Config['proxy_host'];
if (!empty($Config['proxy_port'])) {
$http->proxy_port = $Config['proxy_port'];
}
}
// set referrer
$referer = '';
if (!empty($Config['fetch_referer_re'])) {
foreach ($Config['fetch_referer_re'] as $re => $ref) {
if (preg_match($re, $value)) {
$referer = $ref;
break;
}
}
}
// default referrer
if (empty($referer) and !empty($Config['fetch_referer'])) {
$referer = $Config['fetch_referer'];
}
if (empty($referer)) {
$referer = qualifiedUrl($formatter->link_url($formatter->page->urlname));
}
$http->nobody = true;
$http->referer = $referer;
// check HEAD support for the internal fetch plugin
$method = 'GET';
if (!empty($Config['fetch_imagesize_head']) && strstr($value, $Config['fetch_action'])) {
$method = 'HEAD';
}
$http->sendRequest($value, array(), $method);
if ($http->status != 200) {
return _("Unknown");
}
if (isset($http->resp_headers['content-length'])) {
$sz = $http->resp_headers['content-length'];
}
$sc->update($value, $sz);
}
break;
}
if ($sz > 0) {
$unit = array('Bytes', 'KB', 'MB', 'GB');
for ($i = 0; $i < 4; $i++) {
if ($sz <= 1024) {
break;
}
$sz = $sz / 1024;
}
return round($sz, 2) . ' ' . $unit[$i];
}
// set as dynamic macro or not.
if ($formatter->_macrocache and empty($options['call'])) {
return $formatter->macro_cache_repl('ImageFileSize', $value);
}
if (empty($options['call'])) {
$formatter->_dynamic_macros['@ImageFileSize'] = 1;
}
return _("Unknown");
}
示例4: getPages
function getPages($params)
{
global $DBInfo;
$http = new HTTPClient();
if (empty($this->json)) {
$this->json = new Services_JSON();
}
$offset = 0;
if (!empty($params['offset']) and is_numeric($params['offset']) and $params['offset'] > 0) {
$offset = $params['offset'];
}
// set page_limit
$pages_limit = isset($DBInfo->pages_limit) ? $DBInfo->pages_limit : 5000;
// 5000 pages
$total = $this->pageCount();
$size = $pages_limit;
if (!empty($params['all'])) {
$size = $total;
}
$url = $this->index_url . '/text/_search';
$data = '{ "fields" : "title", "from" : ' . $offset . ', "size" : ' . $size . ', "query": { "query_string" : {"query" : "*"} } }';
if (!$http->sendRequest($url, $data, 'POST')) {
return false;
}
if ($http->status != 200) {
return false;
}
if ($http->resp_body === false) {
return false;
}
$pages = array();
$json = $this->json->decode($http->resp_body);
foreach ($json->hits->hits as $hit) {
$pages[] = $hit->_id;
}
$info['offset'] = $offset;
$info['count'] = count($pages);
if (isset($params['ret'])) {
$params['ret'] = $info;
}
return $pages;
}
示例5: macro_WikimediaCommons
//.........这里部分代码省略.........
break;
}
}
$common = new Cache_Text('wikicommons');
$key = $value . $src;
if (isset($width)) {
$key .= $width;
}
if (isset($height)) {
$key .= '.h' . $height;
}
if (!empty($formatter->refresh) || ($images = $common->fetch($key)) === false) {
if (!empty($width)) {
$data['iiurlwidth'] = min(1280, $width);
} else {
if (!empty($height)) {
$data['iiurlheight'] = min(1280, $height);
} else {
// default image width
$data['iiurlwidth'] = 640;
}
}
require_once dirname(__FILE__) . '/../lib/HTTPClient.php';
$http = new HTTPClient();
$save = ini_get('max_execution_time');
set_time_limit(0);
// support proxy
if (!empty($DBInfo->proxy_host)) {
$http->proxy_host = $DBInfo->proxy_host;
if (!empty($DBInfo->proxy_port)) {
$http->proxy_port = $DBInfo->proxy_port;
}
}
$http->sendRequest($api_url, $data, 'POST');
set_time_limit($save);
// FIXME
if ($http->status != 200) {
return '';
}
$res = json_decode($http->resp_body);
$images = $res->query->pages;
$common->update($key, $images);
}
$image = current($images);
$image_url = $image->imageinfo[0]->thumburl;
$desc_url = $image->imageinfo[0]->descriptionurl;
if (empty($styles['width']) && !empty($image->imageinfo[0]->thumbwidth)) {
$styles['width'] = $image->imageinfo[0]->thumbwidth . 'px';
}
$attrs = array();
$keys = array('width', 'height');
foreach ($keys as $key) {
if (isset($styles[$key])) {
$attrs[] = $key . '="' . $styles[$key] . '"';
unset($styles[$key]);
}
}
$attr = '';
if (count($attrs)) {
$attr = ' ' . implode(' ', $attrs);
}
$style = '';
foreach ($styles as $k => $v) {
$style .= $k . ':' . $v . ';';
}
if (!empty($style)) {
示例6: macro_Fetch
function macro_Fetch($formatter, $url = '', $params = array())
{
global $DBInfo;
if (empty($url)) {
$params['retval']['error'] = _("Empty URL");
return false;
}
// check valid url
if (!preg_match('@^((ftp|https?)://[^/]+)/@', $url, $m)) {
return false;
}
$siteurl = $m[1];
require_once "lib/HTTPClient.php";
$sz = 0;
$allowed = 'png|jpeg|jpg|gif';
if (!empty($DBInfo->fetch_exts)) {
$allowed = $DBInfo->fetch_exts;
}
// urlencode()
$url = _urlencode($url);
// set default params
$maxage = !empty($DBInfo->fetch_maxage) ? (int) $DBInfo->fetch_maxage : 60 * 60 * 24 * 7;
$timeout = !empty($DBInfo->fetch_timeout) ? (int) $DBInfo->fetch_timeout : 15;
$vartmp_dir = $DBInfo->vartmp_dir;
$buffer_size = 2048 * 1024;
// default buffer size
if (!empty($DBInfo->fetch_buffer_size) and $DBInfo->fetch_buffer_size > 2048 * 1024) {
$buffer_size = $DBInfo->fetch_buffer_size;
}
// set referrer
$referer = '';
if (!empty($DBInfo->fetch_referer_re)) {
foreach ($DBInfo->fetch_referer_re as $re => $ref) {
if (preg_match($re, $url)) {
$referer = $ref;
break;
}
}
}
// default referrer
if (empty($referer) and !empty($DBInfo->fetch_referer)) {
$referer = $DBInfo->fetch_referer;
}
// check site available
$si = new Cache_text('siteinfo');
if ($si->exists($siteurl)) {
if (!empty($params['refresh'])) {
$si->remove($siteurl);
} else {
if (empty($params['refresh']) && ($check = $si->fetch($siteurl)) !== false) {
$params['retval']['status'] = $check['status'];
$params['retval']['error'] = $check['error'];
return false;
}
}
}
$sc = new Cache_text('fetchinfo');
$error = null;
if (empty($params['refresh']) and $sc->exists($url) and $sc->mtime($url) < time() + $maxage) {
$info = $sc->fetch($url);
$sz = $info['size'];
$mimetype = $info['mimetype'];
$error = !empty($info['error']) ? $info['error'] : null;
// already retrived and found some error
if (empty($params['refresh']) and !empty($error)) {
$params['retval']['status'] = $info['status'];
$params['retval']['error'] = $error;
$params['retval']['mimetype'] = $mimetype;
$params['retval']['size'] = $sz;
return false;
}
} else {
// check connection
$http = new HTTPClient();
// get file header
$http->nobody = true;
$http->referer = $referer;
$http->sendRequest($url, array(), 'GET');
//if ($http->status == 301 || $http->status == 302 ) {
//
//}
if ($http->status != 200) {
if ($http->status == 404) {
$params['retval']['error'] = '404 File Not Found';
} else {
$params['retval']['error'] = !empty($http->error) ? $http->error : sprintf(_("Invalid Status %d"), $http->status);
}
$params['retval']['status'] = $http->status;
// check alive site
if ($http->status == -210) {
$si->update($siteurl, array('status' => $http->status, 'error' => $params['retval']['error']), 60 * 60 * 24);
return false;
}
$sc->update($url, array('size' => -1, 'mimetype' => '', 'error' => $params['retval']['error'], 'status' => $params['retval']['status']), 60 * 60 * 24 * 3);
return false;
}
if (isset($http->resp_headers['content-length'])) {
$sz = $http->resp_headers['content-length'];
}
if (isset($http->resp_headers['content-type'])) {
//.........这里部分代码省略.........
示例7: do_wikidiff
function do_wikidiff($formatter, $params = array())
{
global $Config;
$supported = array('default' => '%0%2?action=raw', 'namuwiki' => '%1raw/%2');
if (!empty($Config['wikidiff_sites'])) {
$wikis = $Config['wikidiff_sites'];
} else {
$wikis = array('kowikipedia' => 'https://ko.wikipedia.org/wiki/', 'librewiki' => 'http://librewiki.net/wiki/', 'namuwiki' => 'https://namu.wiki/raw/');
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['wiki']) && isset($wikis[$_POST['wiki']])) {
require_once dirname(__FILE__) . '/../lib/HTTPClient.php';
$wiki = $_POST['wiki'];
if (isset($supported[$wiki])) {
$format_url = $supported[$wiki];
} else {
$format_url = $supported['default'];
}
$url = $wikis[$wiki];
$parsed = parse_url($url);
if (isset($_POST['value'][0])) {
$pagename = rawurlencode($_POST['value']);
} else {
$pagename = $formatter->page->urlname;
}
// translate table.
$trs = array('%0' => $url, '%1' => $parsed['scheme'] . '://' . $parsed['host'] . '/', '%2' => $pagename);
$request_url = strtr($format_url, $trs);
$save = ini_get('max_execution_time');
set_time_limit(0);
$http = new HTTPClient();
$http->timeout = 15;
// set timeout
// support proxy
if (!empty($Config['proxy_host'])) {
$http->proxy_host = $Config['proxy_host'];
if (!empty($Config['proxy_port'])) {
$http->proxy_port = $Config['proxy_port'];
}
}
$http->sendRequest($request_url, array(), 'GET');
set_time_limit($save);
$formatter->send_header('', $params);
if ($http->status != 200) {
$params['.title'] = sprintf(_("Fail to connect %s"), $http->status);
$diff = null;
} else {
$diff = $formatter->get_diff($http->resp_body);
$params['.title'] = sprintf(_("Difference between this wiki and %s."), $wiki);
}
$formatter->send_title('', '', $params);
if (isset($diff[0])) {
echo "<div id='wikiDiffPreview'>\n";
echo $formatter->processor_repl('diff', $diff, $params);
echo "</div>\n";
} else {
if ($http->status != 200) {
echo sprintf(_("Status: %s"), $http->status);
} else {
echo _("No difference found.");
}
}
$formatter->send_footer('', $params);
return;
}
$select = '<select name="wiki">';
$select .= '<option>' . _("-- Select Wiki --") . '</option>';
foreach ($wikis as $w => $url) {
$select .= '<option value="' . $w . '">' . $w . '</option>' . "\n";
}
$select .= '</select>';
$name = isset($_GET['value'][0]) ? $_GET['value'] : '';
$default = _html_escape($formatter->page->name);
$optional = '<br />' . _("Page name:") . ' <input type="text" name="value" placeholder="' . $default . '" value="' . _html_escape($name) . '" /><br />';
//$optional .= _("Reverse order:")." <input type='checkbox' name='reverse' /> ";
$params['.title'] = _("Show difference between wikis.");
$button = _("Diff");
$formatter->send_header('', $params);
$formatter->send_title('', '', $params);
echo <<<FORM
<form method='post'>
{$select}
{$optional}
<input type='submit' value='{$button}' />
<input type='hidden' name='action' value='wikidiff' />
</form>
FORM;
$formatter->send_footer('', $params);
return;
}
示例8: macro_Play
//.........这里部分代码省略.........
} else {
if (preg_match('@^https?://(?:videofarm|tvpot)\\.daum\\.net/(?:.*?(?:clipid=|vid=|v/))?([a-zA-Z0-9%$]+)@i', $media[$i], $m)) {
// like as http://tvpot.daum.net/v/GCpMeZtuBnk%24
if (preg_match('@[0-9]+$@', $m[1])) {
// clipid case
$aurl = $media[$i];
$clipid = $m[1];
require_once "lib/HTTPClient.php";
// fetch tvpot.daum.net
$sc = new Cache_text('daumtvpot');
$maxage = 60 * 60;
if (empty($params['refresh']) and $sc->exists($aurl) and $sc->mtime($aurl) < time() + $maxage) {
$info = $sc->fetch($aurl);
} else {
// no cached info found.
if ($formatter->_macrocache and empty($params['call'])) {
return $formatter->macro_cache_repl('Play', $value);
}
if (empty($params['call'])) {
$formatter->_dynamic_macros['@Play'] = 1;
}
// try to fetch tvpot.daum.net
$http = new HTTPClient();
$save = ini_get('max_execution_time');
set_time_limit(0);
$http->timeout = 15;
// support proxy
if (!empty($DBInfo->proxy_host)) {
$http->proxy_host = $DBInfo->proxy_host;
if (!empty($DBInfo->proxy_port)) {
$http->proxy_port = $DBInfo->proxy_port;
}
}
$http->sendRequest($aurl, array(), 'GET');
set_time_limit($save);
if ($http->status != 200) {
return '[[Media(' . $aurl . ')]]';
}
if (!empty($http->resp_body)) {
// search Open Graph url info
if (preg_match('@og:url"\\s+content="http://tvpot\\.daum\\.net/v/([^"]+)"@', $http->resp_body, $match)) {
$info = array('vid' => $match[1], 'clipid' => $clipid);
$sc->update($aurl, $info);
}
} else {
return '[[Media(' . $aurl . ')]]';
}
}
$m[1] = $info['vid'];
}
if ($object_prefered) {
$classid = "classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'";
$movie = "http://videofarm.daum.net/controller/player/VodPlayer.swf";
$type = 'type="application/x-shockwave-flash"';
$attr = 'allowfullscreen="true" allowScriptAccess="always" flashvars="vid=' . $m[2] . '&playLoc=undefined"';
if (empty($mysize)) {
$attr .= ' width="500px" height="281px"';
}
$url[$i] = $movie;
$params = "<param name='movie' value='{$movie}'>\n" . "<param name='flashvars' value='vid=" . $m[1] . "&playLoc=undefined'>\n" . "<param name='allowScriptAccess' value='always'>\n" . "<param name='allowFullScreen' value='true'>\n";
} else {
$iframe = '//videofarm.daum.net/controller/video/viewer/Video.html?play_loc=tvpot' . '&jsCallback=false&wmode=transparent&vid=' . $m[1] . '&autoplay=false&permitWideScreen=true';
$attr = 'frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen';
if (empty($mysize)) {
$attr .= ' width="500px" height="281px"';
} else {
示例9: macro_WikimediaCommons
function macro_WikimediaCommons($formatter, $value, $params = array())
{
global $DBInfo, $Config;
// FIXME urldecode for some cases
$value = urldecode($value);
if (($p = strpos($value, ',')) !== false) {
$arg = substr($value, $p + 1);
$value = substr($value, 0, $p);
$arg = preg_replace('@\\s*,\\s*@', ',', $arg);
$arg = preg_replace('@\\s*=\\s*@', '=', $arg);
$args = explode(',', $arg);
}
// check full url
if (preg_match('@^https?://upload\\.wikimedia\\.org/wikipedia/commons/(thumb/)?./../([^/]+\\.(?:gif|jpe?g|png|svg))(?(1)/(\\d+px)-\\2)@', $value, $m)) {
$remain = substr($value, strlen($m[0]));
$value = $m[2];
if (!empty($m[3])) {
$width = intval($m[3]);
}
}
$styles = array();
foreach ($args as $arg) {
$k = $v = '';
if (($p = strpos($arg, '=')) !== false) {
$k = substr($arg, 0, $p);
$v = substr($arg, $p + 1);
} else {
continue;
}
$k = strtolower($k);
switch ($k) {
case 'width':
case 'height':
if (preg_match('@^(\\d+)(px|%)?$@', $v, $m)) {
if (isset($m[2]) && $m[2] == '%') {
$styles[$k] = $v;
} else {
$styles[$k] = $v;
${$k} = intval($m[1]);
}
}
break;
case 'align':
$v = strtolower($v);
if (in_array($v, array('left', 'right', 'center'))) {
$addClass = ' img' . ucfirst($v);
}
break;
}
}
$common = new Cache_Text('wikicommons');
$key = $value;
if (isset($width)) {
$key .= $width;
}
if (isset($height)) {
$key .= '.h' . $height;
}
if (!empty($formatter->refresh) || ($images = $common->fetch($key)) === false) {
$api_url = 'https://commons.wikimedia.org/w/api.php';
$data = array('action' => 'query', 'titles' => 'Image:' . $value, 'prop' => 'imageinfo', 'iiprop' => 'extmetadata|url', 'format' => 'json', 'rawcontinue' => '1');
if (!empty($width)) {
$data['iiurlwidth'] = min(1280, $width);
} else {
if (!empty($height)) {
$data['iiurlheight'] = min(1280, $height);
} else {
// default image width
$data['iiurlwidth'] = 640;
}
}
require_once dirname(__FILE__) . '/../lib/HTTPClient.php';
$http = new HTTPClient();
$save = ini_get('max_execution_time');
set_time_limit(0);
$http->sendRequest($api_url, $data, 'POST');
set_time_limit($save);
// FIXME
if ($http->status != 200) {
return '';
}
$res = json_decode($http->resp_body);
$images = $res->query->pages;
$common->update($key, $images);
}
$image = current($images);
$image_url = $image->imageinfo[0]->thumburl;
$desc_url = $image->imageinfo[0]->descriptionurl;
if (empty($styles['width'])) {
$styles['width'] = $image->imageinfo[0]->thumbwidth . 'px';
}
$style = '';
foreach ($styles as $k => $v) {
$style .= $k . ':' . $v . ';';
}
if (!empty($style)) {
$style = ' style="' . $style . '"';
}
$copyright = $image->imageinfo[0]->extmetadata->Copyrighted->value;
$description = $image->imageinfo[0]->extmetadata->ImageDescription->value;
//.........这里部分代码省略.........
示例10: macro_Pull
function macro_Pull($formatter, $pagename = '', $params = array())
{
global $DBInfo;
if (empty($pagename)) {
$params['retval']['error'] = _("Empty PageName");
return false;
}
if (empty($DBInfo->pull_url)) {
$params['retval']['error'] = _("Empty \$pull_url");
return false;
}
if (strpos($DBInfo->pull_url, '$PAGE') === false) {
$url = $DBInfo->pull_url . _rawurlencode($pagename);
} else {
$url = preg_replace('/\\$PAGE/', _rawurlencode($pagename), $DBInfo->pull_url);
}
$url .= '?action=raw';
require_once "lib/HTTPClient.php";
$sz = 0;
// set default params
$maxage = !empty($DBInfo->pull_maxage) ? (int) $DBInfo->pull_maxage : 60 * 60 * 24 * 7;
$timeout = !empty($DBInfo->pull_timeout) ? (int) $DBInfo->pull_timeout : 15;
$maxage = (int) $maxage;
// check connection
$http = new HTTPClient();
$sc = new Cache_text('mirrorinfo');
$error = null;
$headers = array();
while ($sc->exists($pagename) and time() < $sc->mtime($pagename) + $maxage) {
$info = $sc->fetch($pagename);
if ($info == false) {
break;
}
$sz = $info['size'];
$etag = $info['etag'];
$lastmod = $info['last-modified'];
$error = !empty($info['error']) ? $info['error'] : null;
// already retrived and found some error
if (empty($params['refresh']) and !empty($error)) {
return false;
}
// conditional get
$headers['Cache-Control'] = 'maxage=0';
$headers['If-Modified-Since'] = $lastmod;
if (empty($DBInfo->pull_no_etag)) {
$headers['If-None-Match'] = $etag;
}
// do not refresh for no error cases
if (empty($error)) {
unset($params['refresh']);
}
break;
}
// get file header
$http->nobody = true;
if (!empty($headers)) {
$http->headers = array_merge($http->headers, $headers);
}
$http->sendRequest($url, array(), 'GET');
if ($http->status == 304) {
// not modified
$params['retval']['status'] = 304;
return true;
}
if ($http->status != 200) {
$params['retval']['error'] = sprintf(_("Invalid Status %d"), $http->status);
$params['retval']['status'] = $http->status;
return false;
} else {
if (!empty($params['check'])) {
$params['retval']['status'] = 200;
return true;
}
}
if (isset($http->resp_headers['content-length'])) {
$sz = $http->resp_headers['content-length'];
}
$etag = '';
$lastmod = '';
if (isset($http->resp_headers['etag'])) {
$etag = $http->resp_headers['etag'];
}
if (isset($http->resp_headers['last-modified'])) {
$lastmod = $http->resp_headers['last-modified'];
}
$sc->update($pagename, array('size' => $sz, 'etag' => $etag, 'last-modified' => $lastmod));
// size info
if (is_numeric($sz)) {
$unit = array('Bytes', 'KB', 'MB', 'GB');
$tmp = $sz;
for ($i = 0; $i < 4; $i++) {
if ($tmp <= 1024) {
break;
}
$tmp = $tmp / 1024;
}
$hsz = round($tmp, 2) . ' ' . $unit[$i];
} else {
$params['retval']['error'] = _("Can't get file size info");
$params['retval']['mimetype'] = $mimetype;
//.........这里部分代码省略.........