curl 切片上传

POST
$filepatch = "./1.wav";

$size = filesize($filepatch);


$tmp_size = 1024*1024;
$num = ceil($size/$tmp_size)+1;

$url = "http://localhost/curl_post/get.php";

for($i=1;$i<$num;$i++){
    
    $start = ($i-1)*$tmp_size;
    $tmp_data = file_get_contents($filepatch,1,null,$start,$tmp_size);
    

    
    $data = array();

    
    $data['d'] = $tmp_data;
    $data['i'] = $i;
    

    $data['name'] = "2.wav";
    
    
    
    
    http_post($url,$data);
}

 
 

/**
 * POST 请求
 * @param string $url
 * @param array $param
 * @param int $timeout 超时时间
 * @param boolean $post_file 是否文件上传
 * @return string content
 */
function http_post($url,$param,$timeout = 10,$post_file = false){
    $oCurl = curl_init();
    if(stripos($url,"https://")!==FALSE){
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
    }
    if (PHP_VERSION_ID >= 50500 && class_exists('\CURLFile')) {
        $is_curlFile = true;
    } else {
        $is_curlFile = false;
        if (defined('CURLOPT_SAFE_UPLOAD')) {
            curl_setopt($oCurl, CURLOPT_SAFE_UPLOAD, false);
        }
    }
    if (is_string($param)) {
        $strPOST = $param;
    }elseif($post_file) {
        if($is_curlFile) {
            foreach ($param as $key => $val) {
                if (substr($val, 0, 1) == '@') {
                    $param[$key] = new CURLFile(realpath(substr($val,1)));
                }
            }
        }
        $strPOST = $param;
    } else {
        $aPOST = array();
        foreach($param as $key=>$val){
            $aPOST[] = $key."=".urlencode($val);
        }
        $strPOST =  join("&", $aPOST);
    }
    curl_setopt($oCurl, CURLOPT_TIMEOUT,$timeout);
    curl_setopt($oCurl, CURLOPT_URL, $url);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($oCurl, CURLOPT_POST,true);
    curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);
    $sContent = curl_exec($oCurl);
    $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    if(intval($aStatus["http_code"])==200){

        return $sContent;
    }else{
        // print_r($aStatus);
        // echo $sContent;
        return false;
//        return array('code' => intval($aStatus["http_code"]), 'data' => $sContent);
    }
}

REQUEST:

 
if($_REQUEST['i'] == 1){
    file_put_contents("./".$_REQUEST['name'],$_REQUEST['d']);

}else{
    file_put_contents("./".$_REQUEST['name'],$_REQUEST['d'],FILE_APPEND);

}
  


 

猜你喜欢

转载自blog.csdn.net/pping0536/article/details/88886740