函数取自Discuz(略有改动),觉得挺不错的基本兼容了所有PHP版本。
参数:
source:当前位置
target:目标位置
返回值:成功返回true,失败返回false
function save_to_local($source, $target) {
if(!is_upload_file($source)) {
$succeed = false;
}elseif(@copy($source, $target)) {
$succeed = true;
}elseif(function_exists('move_uploaded_file') && @move_uploaded_file($source, $target)) {
$succeed = true;
}elseif (@is_readable($source) && (@$fp_s = fopen($source, 'rb')) && (@$fp_t = fopen($target, 'wb'))) {
while (!feof($fp_s)) {
$s = @fread($fp_s, 1024 * 512);
@fwrite($fp_t, $s);
}
fclose($fp_s); fclose($fp_t);
$succeed = true;
}
if($succeed) {
@chmod($target, 0644); @unlink($source);
} else {
$succeed = false;
}
return $succeed;
}