贴上一段宝贵的代码
/**上传文件到本服务*/
global $config;
$uploaddir = $config['global']['upload_dir'];
$uniqueid = uniqid();
$filename = $_FILES['userfile']['name'];
$exname = strtolower(substr($filename, strrpos($filename,"."))); //后缀
$uploadfile = $uploaddir.$uniqueid.$exname;
/**End*/
$exname = strtolower($exname);
//格式判断
if($exname !='.jpg' && $exname !='.gif' && $exname !='.png')
{
$rs = array(
'success' => false,
'message' => "上传文件失败 ,请选择 jpg 或gif 或png 格式的图片。",
'fileurl' => null
);
}else
{
//切割图片处理
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
$file = $uploadfile;
$smalluploadfile = $uploaddir.'s'.$uniqueid.$exname;
makeThumb($file, $smalluploadfile, 82, 82, 1|8, 1, 0, 0);
unlink($uploadfile);
if(file_exists($smalluploadfile))
{
//开始利用curl处理上传的文件(交给'http://file.sohu.com/file/upit进行处理)
$url = 'http://file.sohu.com/file/upit'; //target url
$fields['userfile'] = '@'.realpath($smalluploadfile);
$fields['owner'] = $_POST['owner'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE,false ); // 和php5.2有关的一个问题
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
$headers = curl_exec ($ch); //可以将header打印出来调试
$result = headerCurlJson($headers); 对返回出来的header结果进行处理
unlink($smalluploadfile); //删除
if (true == $result->success)
{
$rs = array(
'success' => true,
'message' => "上传文件成功。",
'fileurl' => $result->fileurl
);
$this -> loadModel('UcpModel');
$flag = UcpModel::setPhoto(array(
'username' => $_POST['owner'],
'userphoto' => $result->fileurl
));
} else
{
$rs = array(
'success' => false,
'message' => "上传文件失败...",
'fileurl' => ''
);
}
curl_close ($ch);
}else
{
$rs = array(
'success' => false,
'message' => "上传文件失败了...",
'fileurl' => ''
);
}
}
//将处理的结果给viewimages.php页面进行显示处理
$this -> loadView('viewimages', array(
'result' => $rs
));