Example #1
0
	/**
	 * 文件上传
	 */
	public function uploadFile () {	
		$this->initUpTypes();
		$file_size_max = (int)@$_REQUEST['max_size'];
		if ($file_size_max > 0) {
			self::$max_file_size = $file_size_max;
		}
		
		$callback = trim(@$_REQUEST['callback']);
		if (!empty($callback)) {
			self::$callback = $callback;
		}
		$printFormat = strtolower(trim(@$_REQUEST['printFormat']));
		if (!empty($printFormat) && in_array($printFormat, array('json', 'html','proxy'))) {
			self::$printFormat = $printFormat;
		}
		
		$formFileName = trim(@$_REQUEST['formName']);
		if (!empty($formFileName)) {
			self::$formName = $formFileName;
		}

		$file = $_FILES[self::$formName];
		if (empty($file)) {
			echo self::printResult('', 'resource'); //图片资源不可用
	        exit();
		}
		$uploadPath = self::$uploadPath;	
		
		if ($file["size"] == 0 || $file["error"] > 0) {
			 echo self::printResult('', 'resource'); //图片资源不可用
	         exit();
		}
		if (!is_uploaded_file($file['tmp_name'])){ 
	         echo self::printResult('', 'invalid'); //图片不存在
	         exit();
	    }	    
	    if(self::$max_file_size < $file["size"]){
	        echo self::printResult('', 'size');     //检查文件大小
	        exit;
	    }	
	    $fileType = $this->getFileType($file['name']);
	    if(!in_array($fileType, self::$uptypes)){
	        echo self::printResult('', 'type');     //检查文件类型
	        exit;
	    }	
	    if(!file_exists($uploadPath)) {
	    	mkdir($uploadPath,0777, true);   //检查文件目录是否存在
	    }
	    
	    $filename=$file["tmp_name"];
	    $filePath=pathinfo($file["name"]);//返回文件路径的信息
	    $suffix = $filePath["extension"];  //文件后缀
		$imgDate=date("YmdHis");
		$name = $imgDate . rand("1000", "9999") . "." . $suffix;
		$fname = self::$urlPath.$name;			    
	    if (file_exists($fname)){
	        echo self::printResult('', 'exsit'); 	//同名文件已经存在了
	        exit;
	    }
	    if(!move_uploaded_file ($filename, $uploadPath . "/" .$name)){
	        echo self::printResult('', 'move');  	//移动文件出错
	        exit;
	    }   
	    echo self::printResult($fname);
	}