⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upload.php.svn-base

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 SVN-BASE
字号:
<?php/** * * $Id$ * * This uploads a file onto the file server. A web service method can later move the file to the correct location. * * KnowledgeTree Community Edition * Document Management Made Simple * Copyright (C) 2008 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited *  * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. *  * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,  * California 94120-7775, or email info@knowledgetree.com. *  * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. *  * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the  * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original  * copyright notice. * Contributor( s): ______________________________________ * *///debugger_start_debug();$output = 'php';if (array_key_exists('output',$_POST)){	$format = $_POST['output'];	switch($format)	{		case 'xml':		case 'json':		case 'php':			$output = $format;			break;		default:			// don't do anything - defaulting to php	}	unset($format);}// TODO: allow for linking of related documents.if (!array_key_exists('session_id',$_POST)){	respond(1, 'Session not specified.');}if (!array_key_exists('action',$_POST)){	respond(2, 'Action not specified.');}$action = $_POST['action'];if (!in_array($action,array('C','A'))){	respond(3, 'Invalid action specified.');}//$session_id = $_POST['session_id'];if (count($_FILES) == 0){	respond(5, 'No files have been uploaded.');}if ($action == 'C'){	if (!array_key_exists('document_id',$_POST))	{		respond(6, 'Document ID not specified.');	}	$document_id = $_POST['document_id'];}require_once('../ktapi/ktapi.inc.php');require_once('KTUploadManager.inc.php');$session_id = $_POST['session_id'];$ktapi = new KTAPI();$session = $ktapi->get_active_session($session_id);if (PEAR::isError($session)){	respond(4, $session->getMessage());}$upload_manager = new KTUploadManager();$upload_manager->cleanup();$upload_manager->set_session($session);$failed = 0;$added=array();$lastMessage='';foreach($_FILES as $key =>$file){	$filename=$file['name'];	$tempfile=$file['tmp_name'];	$error=$file['error'];	if ($error == UPLOAD_ERR_OK)	{		$result = $upload_manager->uploaded($filename, $tempfile, $action);		if (PEAR::isError($result))		{			$lastMessage=$result->getMessage();			$default->log->error("Cannot upload file '$filename'. Temp location: '$tempfile'. " . $lastMessage);			$failed++;			continue;		}		if ($result !== false)		{			$file['tmp_name'] = $result;			$added[$key]=$file;		}		else		{			$failed++;		}	}}if ($failed){	respond(7, 'Could not add files to the system. Please inspect the log file. ' . $lastMessage);}else{	respond(0, '', $added);}function respond($code, $msg, $uploads=array()){	global $output;	$response =array(		'status_code'=>$code,		'msg'=>$msg,		'upload_status'=>$uploads	);	switch($output)	{		case 'xml':			$xml = "<response>\n";			$xml .= "\t<status_code>$code</status_code>\n";			$xml .= "\t<msg>$msg</msg>\n";			$xml .= "\t<upload_status>\n";			$i=0;			foreach($uploads as $key=>$value)			{				$servername = $value['tmp_name'];				$filesize = $value['size'];				$error = $value['error'];				$name  = urlencode($value['name']);				$xml .= "\t\t<file>\n";				$xml .= "\t\t\t<offset>$i</offset>\n";				$xml .= "\t\t\t<name>$name</name>\n";				$xml .= "\t\t\t<filename>$servername</filename>\n";				$xml .= "\t\t\t<filesize>$filesize</filesize>\n";				$xml .= "\t\t\t<error>$error</error>\n";				$xml .= "\t\t</file>\n";				$i++;			}			$xml .= "\t</upload_status>\n";			$xml .= "</response>\n";			print $xml;			exit;		case 'json':			print json_encode($response);			exit;		case 'php':		default:			$msg = urlencode($msg);			$response['upload_status'] = serialize($response['upload_status']);			$str = '';			$i=0;			foreach($response as $key=>$value)			{				if ($i++>0) $str .= '&';				$str .= "$key=$value";			}			print $str;			exit;	}}?>

⌨️ 快捷键说明

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