upload.php

来自「极限OA开源系统」· PHP 代码 · 共 92 行

PHP
92
字号
<?php

function pic_attach_upload() {
	global $content_err,$picftpsave,$picftp, $picftp_name, $picftp_type, $picftp_size, $picftp_fname, $maxpicftpsize, $picftp_extensions;
	$paint_path = './data';
	if(!function_exists("is_uploaded_file")) {
		if(!is_uploaded_file($picftp)) {
			return FALSE;
		}
	}

	$picftp_name = union_addslashes($picftp_name);
	if($picftp_extensions && @!eregi(substr(strrchr($picftp_name, '.'), 1), $picftp_extensions)) {
		$content_err = '对不起 你没有权限使用这种格式上传文件';
	}

	if(!$picftp_size || ($maxpicftpsize && $picftp_size > $maxpicftpsize)) {
		$content_err = '对不起 上传文件太大';
	}
	
	$filename = $picftp_name;

	if(!@is_dir("$paint_path")) {
		mkdir("$paint_path", 0777);
	}
	$extension = strtolower(substr(strrchr($filename, "."), 1));

	if($picftpsave) {
		switch($picftpsave) {
			case ad: $picftp_subdir = 'ad'; break;
			case search: $picftp_subdir = 'search'; break;
			case webshop: $picftp_subdir = 'webshop'; break;
			case web: $picftp_subdir = 'web'; break;
			case web_product: $picftp_subdir = 'web_product'; break;
			case member: $picftp_subdir = 'member'; break;
			case bbsid: $picftp_subdir = 'bbs/bbs_'.$GLOBALS['bbsid']; break;
			case extension: $picftp_subdir = 'bbs/extension_'.$extension; break;
			case month: $picftp_subdir = 'bbs/month_'.date('ym'); break;
			case day: $picftp_subdir = 'bbs/day_'.date('ymd'); break;
			Default: $picftp_subdir = $picftpsave; break;
		}
		if(!is_dir($paint_path.'/'.$picftp_subdir)) {
			mkdir($paint_path.'/'.$picftp_subdir, 0777);
		}
		$picftp_fname = $picftp_subdir.'/';
	} else {
		$picftp_fname = 'ad';
	}
	$filename = substr($filename, 0, strlen($filename) - strlen($extension) - 1);
	if(preg_match("/[\x7f-\xff]+/s", $filename)) {
		$filename = base64_encode(substr($filename, 0, 20));
		$filename = ereg_replace("/", "", $filename);
	}
	if(in_array($extension, array('php', 'php3', 'jsp', 'asp', 'cgi', 'pl'))) {
		$extension = '_'.$extension;
	}

	$picftp_fname .= random(4)."_".$filename.".".$extension;

	$picftp_saved = FALSE;

	$source = stripslashes("$paint_path/$picftp_fname");
	if(@copy($picftp, $source)) {
		$picftp_saved = TRUE;
	} elseif(function_exists("move_uploaded_file")) {
		if(@move_uploaded_file($picftp, $source)) {
			$picftp_saved = TRUE;
		}
	}

	if(!$picftp_saved && is_readable($picftp)) {
		@$fp = fopen($picftp, "rb");
		@flock($fp, 2);
		@$attachedfile = fread($fp, $picftp_size);
		@fclose($fp);

		@$fp = fopen($source, "wb");
		@flock($fp, 3);
		if(@fwrite($fp, $attachedfile)) {
			$picftp_saved = TRUE;
		}
		@fclose($fp);
	}

	if(!$picftp_saved) {
		$content_err = '上传失败!';
	} else {
		return TRUE;
	}
}

?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?