通达OA批量下载流程中心附件的示例

<?php

include_once "inc/conn.php";
include_once "inc/header.inc.php";
include_once "inc/utility_all.php";
include_once "inc/utility_file.php";
include_once "inc/utility_org.php";
/*
while (list($key, $value) = each($_GET)) {
	$key = $value;
}

while (list($key, $value) = each($_POST)) {
	$key = $value;
}

$DOWN_PRIV = $ACCESS_PRIV = 0;
$ACCESS_PRIV = $MANAGE_PRIV = $DOWN_PRIV = $NEW_PRIV = $OWNER_PRIV = $MANAGE_SELF_PRIV = 0;
$module_priv = "";

if (is_module_manager(4)) {
	$module_priv = 1;
}

if ($SORT_ID != 0) {
	$query = "SELECT SORT_NAME,SORT_PARENT,USER_ID,MANAGE_USER,DOWN_USER,NEW_USER,OWNER from FILE_SORT where SORT_ID='$SORT_ID'";
	$cursor = exequery(TD::conn(), $query);

	if ($ROW = mysql_fetch_array($cursor)) {
		$SORT_NAME = $ROW["SORT_NAME"];
		$SORT_PARENT = $ROW["SORT_PARENT"];
		$USER_ID = $ROW["USER_ID"];
		$MANAGE_USER = $ROW["MANAGE_USER"];
		$DOWN_USER = $ROW["DOWN_USER"];
		$NEW_USER = $ROW["NEW_USER"];
		$OWNER = $ROW["OWNER"];
		$ACCESS_PRIV = ($USER_ID == $_SESSION["LOGIN_USER_ID"]) || check_priv($USER_ID) || $OWNER_PRIV;
		$MANAGE_PRIV = ($USER_ID == $_SESSION["LOGIN_USER_ID"]) || check_priv($MANAGE_USER);
		$DOWN_PRIV = ($USER_ID == $_SESSION["LOGIN_USER_ID"]) || check_priv($DOWN_USER);
		if ($MANAGE_PRIV || ($module_priv == 1)) {
			$DOWN_PRIV = 1;
		}
	}
}
else if ($FILE_SORT == 2) {
	$ACCESS_PRIV = $MANAGE_PRIV = $DOWN_PRIV = $NEW_PRIV = 1;
}

if ($SORT_ID == 0) {
	$SORT_NAME = _("根目录");
}

if (!$ACCESS_PRIV && ($module_priv != 1)) {
	Message(_("错误"), _("您没有权限访问该目录"));
	exit();
}
*/

$run_id="48502";
$query1="select * from bpm_data_193 where run_id='$run_id' limit 1";
$cursor1=exequery(TD::conn(),$query1);
while($row1=mysql_fetch_array($cursor1)){
	$mingcheng=$run_id.$row1["run_name"];
	}
if($mingcheng!=""){
$SORT_NAME=$mingcheng;
} else {
	$SORT_NAME = _("附件下载");
	}
session_cache_limiter("private, must-revalidate");

if (!class_exists("ZipArchive")) {
	$THE_PATH2 = realpath(MYOA_ROOT_PATH . "../") . "\bin\\";
	$MSG = sprintf(_("1、确认%sphp_zip.dll存在;"), $THE_PATH2) . "<br>";
	$MSG .= sprintf(_("2、请用记事本打开%sphp.ini;"), $THE_PATH2) . "<br>";
	$MSG .= _("3、在文件中查找“;extension=php_zip.dll”,删除前面的“;”符号,然后保存并关闭文件;") . "<br>";
	$MSG .= _("4、重新启动Office_Anywhere服务。");
	Message(_("请联系管理员开启Zip扩展"), $MSG);
	exit();
}

$zip_file = get_tmp_filename("file_folder_down");
$zip = new ZipArchive();
$res = $zip->open($zip_file, ZipArchive::CREATE | ZIPARCHIVE::OVERWRITE);

if ($res !== true) {
	Message(_("提示"), _("创建文件错误,代码:") . $res);
	exit();
}

$tmp_file_array = array();
$tmp_file_array[] = $zip_file;


$query="select * from bpm_data_193_child where run_id='48502'";
$cursor=exequery(TD::conn(),$query);
while($ROW=mysql_fetch_array($cursor)){
	$ATTACHMENT_ID = $ROW["data_m16339_key"];
		$ATTACHMENT_NAME = $ROW["data_m16339"];
	}
		
		$ATTACHMENT_ID_ARRAY = explode(",", $ATTACHMENT_ID);
		$ATTACHMENT_NAME_ARRAY = explode("*", $ATTACHMENT_NAME);
		$ARRAY_COUNT = sizeof($ATTACHMENT_ID_ARRAY);
		$ATTACHMENT_NAME_TEMP_ARRAY = "";

		for ($I = 0; $I < $ARRAY_COUNT; $I++) {
			if ($ATTACHMENT_ID_ARRAY[$I] == "") {
				continue;
			}

			

			$filename = attach_real_path($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]);

			if (!file_exists($filename)) {
				continue;
			}

			$tmp_filename = get_tmp_filename("file_folder_attach", basename($filename));

			if (decrypt_attach($filename, $tmp_filename)) {
				$filename = $tmp_filename;
				$tmp_file_array[] = $tmp_filename;
			}

			$ATTACHMENT_NAME_TEMP = $ATTACHMENT_NAME_ARRAY[$I];

			if (find_id($ATTACHMENT_NAME_TEMP_ARRAY, $ATTACHMENT_NAME_TEMP)) {
				$ATTACHMENT_NAME_TEMP = substr($ATTACHMENT_ID_ARRAY[$I], 5) . "_" . $ATTACHMENT_NAME_TEMP;
				$ATTACHMENT_NAME_TEMP_ARRAY .= $ATTACHMENT_NAME_TEMP . ",";
			}
			else {
				$ATTACHMENT_NAME_TEMP_ARRAY .= $ATTACHMENT_NAME_TEMP . ",";
			}

			$res = $zip->addFile($filename,  $ATTACHMENT_NAME_TEMP);

			if ($res !== true) {
				$zip->close();
				@unlink($zip_file);
				echo _("添加文件错误");
				exit();
			}
		}


$zip->close();

if (file_exists($zip_file)) {
	$I = 0;
	$CHAR = "/,\,*,:,?,\",<,>,|";

	while ($I < strlen($SORT_NAME)) {
		$STR = substr($SORT_NAME, $I, 1);

		if (find_id($CHAR, $STR)) {
			$SORT_NAME = str_replace($STR, "", $SORT_NAME);
		}

		$I++;
	}

	ob_end_clean();
	header("Content-Type: application/zip");
	header("Content-Length: " . filesize($zip_file));
	Header("Content-Disposition: attachment; " . get_attachment_filename($SORT_NAME . ".zip"));
	$handle = td_fopen($zip_file, "rb");

	while (!feof($handle)) {
		echo fread($handle, 16384);
	}

	fclose($handle);
	@unlink($zip_file);
}
else {
	echo _("下载文件失败");
}

foreach ($tmp_file_array as $tmp_file ) {
	@unlink($tmp_file);
}

?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hai7425

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值