问下这段代码的作用是什么?

@Ta 2015-07-28 1838点击
if($_FILES) {
    $index=array();
    foreach($_FILES as $k=>$f) {
        arrIndex($f['name'],$index,urlencode($k));
    }
    $postIndex=array();
    foreach($_POST as $k=>$f) {
        arrIndex($f,$postIndex,urlencode($k));
    }
    $boundary = preg_replace('!^.*;\s*boundary=!isU', '', $_SERVER['CONTENT_TYPE']);
    $post = '';
    foreach ($postIndex as $k) {
        $post .= "--$boundary\r\n";
        $post .= "Content-Disposition: form-data; name=\"".arrKey($k)."\"\r\n\r\n";
        $post .= arrGetInfo($_POST,$k)."\r\n";
    }
    $conLen=strlen($post);
    $file = array();
    foreach ($index as $i=>$k) {
        $offset = strpos($k,'/');
        if($offset !== false) {
            $k1 = urldecode(substr($k, 0, $offset));
            $k2 = substr($k, $offset+1);
        } else {
            $k1 = urldecode($k);
            $k2 = null;
        }
        $v = $_FILES[$k1];
        $file[$i][0] .= "--$boundary\r\n";
        $file[$i][0] .= "Content-Disposition: form-data; name=\"".arrKey($k)."\"; filename=\"".arrGetInfo($v['name'],$k2)."\"\r\n";
        $file[$i][0] .= "Content-Type: ".arrGetInfo($v['type'],$k2)."\r\n\r\n";
        $file[$i][1] .= "\r\n";
        $file[$i][1] .= "--$boundary--\r\n";
        $file[$i][2] = arrGetInfo($v['size'], $k2);
        $file[$i][3] = arrGetInfo($v['tmp_name'], $k2);
        //var_dump($_FILES, '<hr/>', $file);die;
        $conLen += strlen($file[$i][0]) + $file[$i][2] + strlen($file[$i][1]);
    }
    //var_dump($file, $conLen, $_FILES);die;
    //$_SERVER['CONTENT_TYPE'] = "multipart/form-data; boundary=$boundary";
    $_SERVER['HTTP_CONTENT_LENGTH'] = $conLen;
}


if ($_FILES) {
    fwrite($p, $post);
    foreach($file as $f) {
        fwrite($p, $f[0]);
        $fp=fopen($f[3], 'r');
        while($fp && !feof($fp)) {
            fwrite($p, fread($fp, 1024));
        }
        fwrite($p, $f[1]);
    }
}
回复列表(2|隐藏机器人聊天)
添加新回复
回复需要登录