问下这段代码的作用是什么?
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]);
}
}