
⑥ 山束高業瞅董投树学疙 Shandong Institute of Commerce and Technology 企业知识管理系统 文件下载与上传任务 ORACL∈Academy
文件下载与上传任务 企业知识管理系统

学习目标 使用LOB保存文件 ·通过浏览器上传文件 通过浏览器下载文件 图U网☑ home back first prev next last
home back first prev next last 2 学习目标 • 使用 LOB 保存文件 • 通过浏览器上传文件 • 通过浏览器下载文件

任务背景3-1 知识管理系统主要的功能是对组织的知识进 行管理,包括对知识的整理、发现、编码, 存储、交流及共享等,使知识资产能够被充 分利用,从而提高组织的智能水平和创新能 力 知识的重要载体是各种类型的文件,如电子 邮件、电子表格、幻灯片文稿、图片、录音、 视频录像等等 因此,文件管理是知识管理系统的重要组成 部分 周U国以 home back first prev next last 3
home back first prev next last 3 任务背景 3-1 • 知识管理系统主要的功能是对组织的知识进 行管理,包括对知识的整理、发现、编码、 存储、交流及共享等,使知识资产能够被充 分利用, 从而提高组织的智能水平和创新能 力 • 知识的重要载体是各种类型的文件,如电子 邮件、电子表格、幻灯片文稿、图片、录音、 视频录像等等 • 因此,文件管理是知识管理系统的重要组成 部分

任务背景3-2 你们项目组正在开发一个校园知识管理系统,用 于将教职员工的各种电子文档收集起来,以便于 查找和获取的方式在校园内共享 你的任务是开发其中的文件上传和下载页面 ·项目经理告诉你: -数据库已经设计完成,你会得到相关的数据表创建脚本 以及相关ERD -你的任务是生成文件上传页面和下载页面 >上传页面要允许用户对文件进行分类或描述 >下载页面允许用户方便查找所需文件 >为了简单起见,我们首先实现基本的上传下载功能 图a因■ home back first prev next last 4
home back first prev next last 4 任务背景 3-2 • 你们项目组正在开发一个校园知识管理系统,用 于将教职员工的各种电子文档收集起来,以便于 查找和获取的方式在校园内共享 • 你的任务是开发其中的文件上传和下载页面 • 项目经理告诉你: – 数据库已经设计完成,你会得到相关的数据表创建脚本 以及相关 ERD – 你的任务是生成文件上传页面和下载页面 ➢上传页面要允许用户对文件进行分类或描述 ➢下载页面允许用户方便查找所需文件 ➢为了简单起见,我们首先实现基本的上传下载功能

任务背景3-3 项目经理告诉你: -为了完成本任务,你需要用到 >LOB数据类型 >File Brower页面项 >视图APEX APPLICATION FILES -界面参考 Page 1 文件上传 文件名 浏览…开始 P R0ws15习G04 Name Mime Type Upload Date ☐下董F278326332高校知识地图研究kdh application/kdh05-MAR-09 1-1 A☑ home back first prev next last5
home back first prev next last 5 任务背景 3-3 • 项目经理告诉你: – 为了完成本任务,你需要用到 ➢LOB 数据类型 ➢File Brower 页面项 ➢视图 APEX_APPLICATION_FILES – 界面参考

相关资料4-1 ·任务ERD 文件 #编号 *文件名 0主题 0文件内容 0文件类型 *上传日期 ·SQL脚本code.txt -内容如下 窗ū国因 home back first prev next last 6
home back first prev next last 6 相关资料 4-1 • 任务 ERD • SQL 脚本 code.txt – 内容如下 文件 # 编号 *文件名 o 主题 o 文件内容 o 文件类型 * 上传日期

相关资料4-2 …创建用于保存文件的表 CREATE TABLE t05_files( id NUMBER PRIMARY KEY, name VARCHAR2(4000)NOT NULL, subject VARCHAR2(4000), file content BLOB, mime_type VARCHAR2(4000), upload_date DATE NOT NULL DEFAULT SYSDATE); 图a国■ home back first prev next last 7
home back first prev next last 7 相关资料 4-2 -- 创建用于保存文件的表 CREATE TABLE t05_files( id NUMBER PRIMARY KEY, name VARCHAR2(4000) NOT NULL, subject VARCHAR2(4000), file_content BLOB, mime_type VARCHAR2(4000), upload_date DATE NOT NULL DEFAULT SYSDATE);

相关资料43 一的这集蒂的过程,在下载页面中 “件大小,使浏览器知道下载 CREATE OR REPLACE PROCEDURE t05 download_my_file(p_filein number) htp.p('Content-length:v_length); AS -如果用户选择save as,浏览器会用 v mime VARCHAR2(48); 到安件名 v_length NUMBER: htp.p('Content-Disposition:attachment; v_file_name VARCHAR2(2000); filename="substr(v_file_name, Lob loc BLOB; instr(v_file_name,'T)+1)ll"M); BEGIN SELECT MIME TYPE,FILE CONTENT,name, -关闭HTTP header DBMS LOB.GETLENGTH(FILE CONTENT) owa_util.http_header_close; INTO v_mime,lob_loc,v_file_name,v_length …下载BLOB数据 FROM t05 files wpg_docload.download_file(Lob_loc); WHERE id p_file; -设置HTTP header信息 end t05_download_my_file; -使用NL函数处理mime type ,如果为空则设置为application/octect …application/octect允许打开一个下载窗口 owa_util.mime_header(nvl(v_mime, application/octet)FALSE): 商U home back first prev next last 8
home back first prev next last 8 相关资料 4-3 -- 创建用于文件下载的过程,在下载页面中 通过 URL 来调用 CREATE OR REPLACE PROCEDURE t05_download_my_file(p_file in number) AS v_mime VARCHAR2(48); v_length NUMBER; v_file_name VARCHAR2(2000); Lob_loc BLOB; BEGIN SELECT MIME_TYPE, FILE_CONTENT, name, DBMS_LOB.GETLENGTH(FILE_CONTENT) INTO v_mime, lob_loc, v_file_name, v_length FROM t05_files WHERE id = p_file; -- 设置 HTTP header 信息 -- 使用 NVL 函数 处理 mime type -- 如果为空 则设置为 application/octect -- application/octect 允许打开一个下载窗口 owa_util.mime_header(nvl(v_mime, 'application/octet'), FALSE); -- 设置文件大小,使浏览器知道下载 长度 htp.p('Content-length: ' || v_length); -- 如果用户选择 save as ,浏览器会用 到文件名 htp.p('Content-Disposition: attachment; filename="' || substr(v_file_name, instr(v_file_name, '/') + 1) || '"'); -- 关闭 HTTP header owa_util.http_header_close; -- 下载 BLOB 数据 wpg_docload.download_file(Lob_loc); end t05_download_my_file; /

相关资料4-4 …授权所有用户可执行此过程 GRANT EXECUTE ON t05_download_my_file TO PUBLIC 图U国因 home back first prev next last 9
home back first prev next last 9 相关资料 4-4 -- 授权所有用户可执行此过程 GRANT EXECUTE ON t05_download_my_file TO PUBLIC /

构建17-1 创建数据表t05 files 创建下载用存储过程to5_download_my_file ·授权所有用户可执行to5_download._my_file 圖a国■ home back first prev next last 10
home back first prev next last 10 构建 17-1 • 创建数据表 t05_files • 创建下载用存储过程t05_download_my_file • 授权所有用户可执行t05_download_my_file