如果你是第一次接触通达OA二次开发请务必熟读通达OA二次开发手册前三章并亲手按照第三章如何创建一个模块操作一遍。
上传附件
涉及的内置函数:Message、upload、attach_link
涉及的公用组件ShowAddFile()
文件处理相关函数都在utility_file.php中,使用前先引入。 一、工具方法 复制文件 :参考PHP原生方法copy td_copy($source, $dest) 重命名文件 :参考PHP原生方法rename td_rename($oldname, $newname) 重命名附件 rename_attach($ATTACHMENT_ID,$ATTACHMENT_NAME_OLD,$ATTACHMENT_NAME_NEW,$MODULE="") 移动已上传的文件 :参考PHP原生方法move_uploaded_file td_move_uploaded_file($filename, $destination) 将数据存入文件中 :参考PHP原生方法 file_put_contents\file_get_contents td_file_put_contents($filename, $data, $flag = FALSE) 打开文件 :参考PHP原生方法fopen td_fopen($filename, $mode, $use_include_path = FALSE, $zcontext = FALSE) 获取图片大小:替代PHP内置的getimagesize函数,支持加密过的文件参数 td_getimagesize($file) 附件加密解密 decrypt_attach($FILE_SRC, $FILE_DEST) 生产一个临时文件路径和名称,用于文件解密、压缩等 get_tmp_filename($prefix, $basename="") 读取doc文件的文本并返回字符串 doc2txt($path) 二、文件类型检测 Is_SysFile($FILE_NAME) 是否是系统文件(网络硬盘默认不显示系统文件以防止误删文件造成系统出错) file_type($file_name) 返回文件类型 mime_type($file_name) 返回文件mime类型 is_media($FILE_NAME) 是否是多媒体文件 is_viewable($FILE_NAME) 是否是可以在线查看的图片 is_thumbable($FILE_NAME) 是否可以后台生成缩略图的图片 is_image($FILE_NAME) 是否是图片 is_ppt_xls($FILE_NAME) 是否是ppt、xls中的一种 is_aip($FILE_NAME) 是否是aip文件 is_office($FILE_NAME) 是否是office文件(doc、ppt、xls) is_editable($FILE_NAME) 是否可以在线编辑 is_text($FILE_NAME) 是否是纯文本文件 is_uploadable($FILE_NAME) 是否是系统允许上传的文件 三、上传附件 (1)前台form表单 <script src="<?=MYOA_JS_SERVER?>/static/js/module.js"></script> <script src="<?=MYOA_JS_SERVER?>/static/js/mouse_mon.js"></script> <script type="text/javascript" src="/inc/js_lang.php"></script> <script type="text/javascript" src="<?=MYOA_JS_SERVER?>/static/js/utility.js"></script> <script type="text/javascript" src="<?=MYOA_JS_SERVER?>/static/js/attach.js"></script> <script Language="JavaScript"> var upload_limit=<?=MYOA_UPLOAD_LIMIT?>,limit_type="<?=strtolower(MYOA_UPLOAD_LIMIT_TYPE)?>"; </script> <script>ShowAddFile();</script> <script>$("ATTACHMENT_upload_div").innerHTML='<a href="javascript:upload_attach();"><?=_("上传附件")?></a>'</script> (2)后台PHP处理 upload($PREFIX="ATTACHMENT", $MODULE="", $OUTPUT=true) $a_attachments = upload();//上传的附件 $s_attachment_id = $a_attachments["ID"]; $s_attachment_name = $a_attachments["NAME"]; $s_attachment_id .= copy_sel_attach($ATTACH_NAME, $ATTACH_DIR, $DISK_ID);//从网盘复制 $s_attachment_name .= $ATTACH_NAME; 四、获取附件 附件默认存储路径根目录为D:/MYOA/attach 系统基于attachment_id、attachment_name识别文件 其中attachment_id分为三部分,aid(附件唯一数字标示)、YM(附件按年月分目录存放附件)、attach_id(附件加密串) 生成附件下载链接 attach_url($ATTACHMENT_ID, $ATTACHMENT_NAME, $MODULE="", $OTHER=array()) 生成带有权限控制的附件菜单 attach_link($ATTACHMENT_ID,$ATTACHMENT_NAME,$SHOW_SIZE=0,$DOWN_PRIV=1,$DOWN_PRIV_OFFICE=1,$EDIT_PRIV=0,$DELETE_PRIV=0,$NEW_LINE=1,$SAVE_FILE=1,$CREATE_IMAGE=0,$MODULE="",$IS_UTF8=false,$FORMAT=0) 获取附件大小 attach_size($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE="") 五、处理附件 删除附件 delete_attach($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE="")
|