网站开发本科论文模块网站开发合同
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:37
当前位置: 首页 > news >正文
网站开发本科论文,模块网站开发合同,网站开发哪家公司口碑好,wordpress 做企业网站目录 功能需求 范例运行环境 设计数据表 关键代码 组件库引入 Word文件内容转文本 上传及保存举例 得到文件Byte[]数据方法 查询并下载Word文件 总结 功能需求 将 WORD 文件的二进制信息存储到数据库里#xff0c;即方便了统一管理文件#xff0c;又可以实行权限控…目录 功能需求 范例运行环境 设计数据表 关键代码 组件库引入 Word文件内容转文本 上传及保存举例 得到文件Byte[]数据方法 查询并下载Word文件 总结 功能需求 将 WORD 文件的二进制信息存储到数据库里即方便了统一管理文件又可以实行权限控制效果此外将 WORD 文件转化为文本存储可以进一步实现对已存储文件的全文检索。 在应用项目里我们将实现如下需求 1、上传WORD文件获取二进制数据和文本数据。 2、将二进制数据和文本数据保存到数据表中。 3、查询需要的数据文件可提供下载功能。 范例运行环境 操作系统 Windows Server 2019 DataCenter 操作系统上安装 Office Word 2016 数据库Microsoft SQL Server 2016 .net版本 .netFramework4.7.1 或以上 开发工具VS2019 C# 设计数据表 打开 Microsoft SQL Server 2016 查询分析器执行如下代码创建表 代码片断如下 CREATE TABLE [dbo].f_words ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GOALTER TABLE [dbo].[f_words] ADD CONSTRAINT [DF_f_words_cid] DEFAULT (newid()) FOR [cid] GO 创建成功后右击f_words表点击设计呈现视图如下 如图字段CID为唯一标识filename存储上传时获取的文件名bfile存储Word文件的二进制数据fcontent存储WORD文件的文本转化信息sys_instime存储添加的时间。 关键代码 组件库引入 Word文件内容转文本 public string getWordTxt(string _filename,bool getHtmlContent) 方法参数1 传入要读取的 WORD 文件路径参数2 设定是否获取HTML格式的文本。 public string getWordTxt(string _filename,bool getHtmlContent){resultReport ;Object Nothing System.Reflection.Missing.Value;object filename _filename;//创建一个名为WordApp的组件对象DateTime beforetime DateTime.Now;Word.Application WordApp new Word.Application();//创建一个名为WordDoc的文档对象WordApp.DisplayAlerts Word.WdAlertLevel.wdAlertsNone;Word.Document WordDoc WordApp.Documents.Open(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);WordDoc.SpellingChecked false;//关闭拼写检查WordDoc.ShowSpellingErrors false;//关闭显示拼写错误提示框DateTime aftertime DateTime.Now;string rv WordDoc.Content.Text;Sys_Custom_DocVar ;Sys_Custom_DocVar2 ;foreach (Word.Variable ov in WordDoc.Variables){if (ov.Name sys_custom_docvar){// WordDoc.Content.Text ov.Value;Sys_Custom_DocVar ov.Value;} else if (ov.Name sys_custom_docvar2){// WordDoc.Content.Text ov.Value;Sys_Custom_DocVar2 ov.Value;}}foreach (Word.ContentControl cc in WordDoc.ContentControls){resultReport cc.ID : cc.Tag br;}string _path Path.GetDirectoryName(_filename) \;object _expFile _path Guid.NewGuid().ToString() .html;if (getHtmlContent true){object wsf Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;WordDoc.SaveAs2(ref _expFile,ref wsf, ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing);}WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);//关闭WordApp组件对象WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);KillProcessByStartTime(WINWORD,beforetime,aftertime);if (File.Exists(_expFile.ToString()) true){FileEx fe new FileEx();rv fe.LoadFromFile(_expFile.ToString(), Encoding.Default);File.Delete(_expFile.ToString());}return rv;}public string KillProcessByStartTime(string processName,DateTime beforetime,DateTime aftertime){Process[] ps Process.GetProcesses();foreach (Process p in ps) {if(p.ProcessName.ToUpper()!processName) continue;if(p.StartTime beforetime p.StartTime aftertime){try{p.Kill();}catch(Exception e){return e.Message;}}} return ;}上传及保存举例 本示例是获取上传的文件并保存将保存后的文件获取二进制及文本数据存储到数据库中。 示例代码如下 string filename Request.PhysicalApplicationPath \app_data\ Guid.NewGuid().ToString() .docx; //预生成文件名 //File1为上传控件 File1.PostedFile.SaveAs(filename); //保存文件//添加SQL参数此处仅为示例 ArrayList paras new ArrayList(); paras.Add(new SqlParameter(filename, filename)); paras.Add(new SqlParameter(fcontent, getWordTxt(filename,false))); //word转文本 paras.Add(new SqlParameter(bfile, GetBinaryData(filename))); //word的二进制信息 paras.Add(new SqlParameter(sys_instime, System.DateTime.Now));File.Delete(filename);//保存到数据表 ExecDbScripts(INSERT INTO f_words VALUES(filename, bfile,fcontent,sys_instime), paras);得到文件Byte[]数据方法 public byte[] GetBinaryData(string filename) {if(!File.Exists(filename)){return null;}FileStream fs new FileStream(filename, FileMode.Open, FileAccess.Read);byte[] imageData new Byte[fs.Length];fs.Read( imageData, 0,Convert.ToInt32(fs.Length));fs.Close();return imageData; } 查询并下载Word文件 我们可以通过 select filename from f_words where fcontent like %key% 等语句形式进行查询结果对于结果中的数据我们可以通过传递CID唯一标识参数定位二进制信息进行下载示例代码如下 string strConn ConfigurationSettings.AppSettings[Connection];SqlConnection Conn new SqlConnection(strConn );SqlCommand Cmd new SqlCommand();Cmd.Connection Conn;SqlDataReader myDr;Cmd.CommandText select filename from f_words where cidcid ;SqlParameter para2new SqlParameter(cid,SqlDbType.UniqueIdentifier);para2.Value(new Guid(_cid));Cmd.Parameters.Add(para2);try{Conn.Open();myDr Cmd.ExecuteReader();bool _hasrowsmyDr.HasRows;if (myDr.Read()){string extendname docx;byte[] bytes (byte[])myDr[bfile];Response.Buffer true;Response.Charset utf-8;Response.AppendHeader(Content-Disposition, inline;filename HttpUtility.UrlEncode(myDr[filename].ToString() extendname)); //把 attachment 改为 online 则在线打开Response.ContentEncoding System.Text.Encoding.GetEncoding(utf-8);Response.AppendHeader(Content-Length, bytes.Length.ToString());Response.ContentType application/octet-stream; Page.EnableViewState false;Response.BinaryWrite(bytes);Response.Flush();}myDr.Close();}catch (SqlException ex){}finally{Conn.Close();Conn.Dispose();} } 总结 上传保存到数据库的代码仅供参考添加参数仅为抽象调用需要自行实现数据操作代码。 下载大尺寸文件使用 Response.BinaryWrite() 方法可能会使浏览器无响应可考虑使用 bytes.Length 判断如果尺寸较大的话则生成文件到服务器并提供URL下载链接的方法。 这些代码我们提供了一些操作WORD及数据表的相关的关键方法这里仅作参考欢迎大家评论指教
- 上一篇: 网站开发背景图模板全包圆装修公司
- 下一篇: 网站开发笔试题wordpress 开发工具
相关文章
-
网站开发背景图模板全包圆装修公司
网站开发背景图模板全包圆装修公司
- 技术栈
- 2026年03月21日
-
网站开发报价模版网络广告是什么意思
网站开发报价模版网络广告是什么意思
- 技术栈
- 2026年03月21日
-
网站开发报价单 excel网站建设任务
网站开发报价单 excel网站建设任务
- 技术栈
- 2026年03月21日
-
网站开发笔试题wordpress 开发工具
网站开发笔试题wordpress 开发工具
- 技术栈
- 2026年03月21日
-
网站开发毕业设计中期检查表页面设计培训
网站开发毕业设计中期检查表页面设计培训
- 技术栈
- 2026年03月21日
-
网站开发产品需求说明陕西网页
网站开发产品需求说明陕西网页
- 技术栈
- 2026年03月21日






