| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | <?phprequire_once("http.php");require_once("auth_digest.php");// ----------------------------------------------------------// class Qiniu_PutExtraclass Qiniu_PutExtra{	public $Params = null;	public $MimeType = null;	public $Crc32 = 0;	public $CheckCrc = 0;}function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err){	global $QINIU_UP_HOST;	if ($putExtra === null) {		$putExtra = new Qiniu_PutExtra;	}	$fields = array('token' => $upToken);	if ($key === null) {		$fname = '?';	} else {		$fname = $key;		$fields['key'] = $key;	}	if ($putExtra->CheckCrc) {		$fields['crc32'] = $putExtra->Crc32;	}	if ($putExtra->Params) {		foreach ($putExtra->Params as $k=>$v) {			$fields[$k] = $v;		}	}	$files = array(array('file', $fname, $body, $putExtra->MimeType));	$client = new Qiniu_HttpClient;	return Qiniu_Client_CallWithMultipartForm($client, $QINIU_UP_HOST, $fields, $files);}function createFile($filename, $mime){    // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax    // See: https://wiki.php.net/rfc/curl-file-upload    if (function_exists('curl_file_create')) {        return curl_file_create($filename, $mime);    }    // Use the old style if using an older version of PHP    $value = "@{$filename}";    if (!empty($mime)) {        $value .= ';type=' . $mime;    }    return $value;}function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $err){	global $QINIU_UP_HOST;	if ($putExtra === null) {		$putExtra = new Qiniu_PutExtra;	}	$fields = array('token' => $upToken, 'file' => createFile($localFile, $putExtra->MimeType));	if ($key === null) {		$fname = '?';	} else {		$fname = $key;		$fields['key'] = $key;	}	if ($putExtra->CheckCrc) {		if ($putExtra->CheckCrc === 1) {			$hash = hash_file('crc32b', $localFile);			$array = unpack('N', pack('H*', $hash));			$putExtra->Crc32 = $array[1];		}		$fields['crc32'] = sprintf('%u', $putExtra->Crc32);	}	if ($putExtra->Params) {		foreach ($putExtra->Params as $k=>$v) {			$fields[$k] = $v;		}	}	$client = new Qiniu_HttpClient;	return Qiniu_Client_CallWithForm($client, $QINIU_UP_HOST, $fields, 'multipart/form-data');}// ----------------------------------------------------------
 |