attach.inc.t

来自「eGroupWare is a multi-user, web-based gr」· T 代码 · 共 95 行

T
95
字号
<?php/**************************************************************************** copyright            : (C) 2001-2003 Advanced Internet Designs Inc.* email                : forum@prohost.org* $Id: attach.inc.t,v 1.2 2003/12/18 18:20:49 iliaa Exp $** This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or * (at your option) any later version.***************************************************************************/function safe_attachment_copy($source, $id, $ext){	$loc = $GLOBALS['FILE_STORE'] . $id . '.atch';	if (!$ext && !move_uploaded_file($source, $loc)) {		std_out('unable to move uploaded file', 'ERR');	} else if ($ext && !copy($source, $loc)) {		std_out('unable to handle file attachment', 'ERR');	}	@unlink($source);	@chmod($loc, ($GLOBALS['FUD_OPT_2'] & 8388608 ? 0600 : 0666));	return $loc;}function attach_add($at, $owner, $attach_opt=0, $ext=0){	$mime_type = (int) q_singleval("SELECT id FROM {SQL_TABLE_PREFIX}mime WHERE fl_ext='".addslashes(substr(strrchr($at['name'], '.'), 1))."'");	$id = db_qid("INSERT INTO {SQL_TABLE_PREFIX}attach (location,message_id,original_name,owner,attach_opt,mime_type,fsize) VALUES('',0,'".addslashes($at['name'])."', ".$owner.", ".$attach_opt.", ".$mime_type.", ".$at['size'].")");	safe_attachment_copy($at['tmp_name'], $id, $ext);	return $id;}function attach_finalize($attach_list, $mid, $attach_opt=0){	$id_list = '';	$attach_count = 0;	$tbl = !$attach_opt ? 'msg' : 'pmsg';	foreach ($attach_list as $key => $val) {		if (empty($val)) {			$del[] = (int)$key;			@unlink($GLOBALS['FILE_STORE'].(int)$key.'.atch');		} else {			$attach_count++;			$id_list .= (int)$key.',';		}	}	if (!empty($id_list)) {		$id_list = substr($id_list, 0, -1);		$cc = __FUD_SQL_CONCAT__.'('.__FUD_SQL_CONCAT__."('".$GLOBALS['FILE_STORE']."', id), '.atch')";		q("UPDATE {SQL_TABLE_PREFIX}attach SET location=".$cc.", message_id=".$mid." WHERE id IN(".$id_list.") AND attach_opt=".$attach_opt);		$id_list = ' AND id NOT IN('.$id_list.')';	} else {		$id_list = '';	}	/* delete any temp attachments created during message creation */	if (isset($del)) {		q('DELETE FROM {SQL_TABLE_PREFIX}attach WHERE id IN('.implode(',', $del).') AND message_id='.$mid.' AND attach_opt='.$attach_opt);	}	/* delete any prior (removed) attachments if there are any */	q("DELETE FROM {SQL_TABLE_PREFIX}attach WHERE message_id=".$mid." AND attach_opt=".$attach_opt.$id_list);	if (!$attach_opt && ($atl = attach_rebuild_cache($mid))) {		q('UPDATE {SQL_TABLE_PREFIX}msg SET attach_cnt='.$attach_count.', attach_cache=\''.addslashes(@serialize($atl)).'\' WHERE id='.$mid);	}}function attach_rebuild_cache($id){	$c = uq('SELECT a.id, a.original_name, a.fsize, a.dlcount, CASE WHEN m.icon IS NULL THEN \'unknown.gif\' ELSE m.icon END FROM {SQL_TABLE_PREFIX}attach a LEFT JOIN {SQL_TABLE_PREFIX}mime m ON a.mime_type=m.id WHERE message_id='.$id.' AND attach_opt=0');	while ($r = db_rowarr($c)) {		$ret[] = $r;	}	return (isset($ret) ? $ret : null);}function attach_inc_dl_count($id, $mid){	q('UPDATE {SQL_TABLE_PREFIX}attach SET dlcount=dlcount+1 WHERE id='.$id);	if (($a = attach_rebuild_cache($mid))) {		q('UPDATE {SQL_TABLE_PREFIX}msg SET attach_cache=\''.addslashes(@serialize($a)).'\' WHERE id='.$mid);	}}?>

⌨️ 快捷键说明

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