在ASP.NET程序中存储和调用word文件
(1) 建立数据库
首先,我们在数据库中建立一个表,表中有三个字段,fileName(varchar,50),postTime(datetime,8), fileContent(image,16),分别存储文件名称,上传时间和word文件的具体内容,其中fileName为主键。具体的SQL脚本如下:
CREATE TABLE [dbo].[word] (
[fileName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[postTime] [datetime] NOT NULL ,
[fileContent] [image] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
(2) 上传并存储word文件
在VS.NET中建立一个ASP.NET web应用程序,在界面内加入如下控件
控件类型 |
ID |
Text |
说明 |
Label |
Label1 |
请输入文档的标题 |
|
Label |
Label2 |
请选择具体文档 |
|
File Field |
File1 |
|
上传控件(要将此HTML控件转化为服务器控件) |
TextBox |
name_TextBox |
|
用于录入文档标题 |
Button |
Btn_OK |
上传文件 |
|
Button |
Btn_get |
读取文件 |
|
HyperLink |
HyperLink1 |
打开 |
用于打开word文档 |
上传文件时首先通过上传控件找到所需上传的文件,然后获取文件的大小,最后以流的形式写入数据库,具体代码为:

































































































注①:此处由于是Image类型文件,事先可能无法预测文件的大小,因此可不必指定size参数。如果希望控制上传文件的大小则可以输入size参数。如指定1000,则上传时最大可以上传1k的word文档。
(3) 从数据库中读取数据并恢复为word文件
读取数据时先将数据从数据库中读入缓冲区,然后再从缓冲区写入最终文件。因此首先要开辟一个缓冲区并设定它的大小,每当缓冲区读满时就要将缓冲区内的数据写入文件,以清空缓冲区并继续向缓冲区读数据,直到最后一次将缓冲区内剩余的数据全部写入文件,新的word文档即可生成。
由于这一部分用到了字节流的输入输出操作,因此要引用System.IO命名空间
下面是关于这一部分的完整代码:



















































































































































此时将按照filePath中指定的路径和名称重新生成word文档。可以在filePath中根据具体情况指定生成的word文档的名称和路径。
(4) 打开word文档
在打开word文档这一部分暂时并没有找到通过Button按钮直接打开word的有效办法,但我们可以HyperLink控件,只要将HyperLink控件的NavigateUrl属性指向word文档的物理路径就可以了。
posted on 2005-03-22 21:39 FenixStudio 阅读(1064) 评论(0) 收藏 举报