上传word文档的内容

这篇博客详细介绍了如何实现Word文档上传并保存到指定文件夹,然后将其转换为HTML格式并保存。内容包括控制器代码、文件类型检查、自定义文件名、创建目录、读取及转换文件等关键步骤。
摘要由CSDN通过智能技术生成
                             上传word文档的内容
开发工具与关键技术:Visual Studio 2015 
作者:李仁海
撰写时间:2019.5.3

一、 上传试题控制器部分代码。
1、试题上传首先public,ActionResult从程序集那引用,然后upLoadWord拿到视图的上传试题路径代码,接着HttpPostedFileBase充当参数值得引用, file参数值。
2、 接着进行实例化:ReturnJsonVo returnJson = new ReturnJsonVo();
3、判断if ,file 参数不等于 null,判断导入的文件类型是否是正确的,同时进行获取文件扩展名,string表示一切文本,即一系列Unicode的字符, fileExtension局变量等于Path对包含文件或路径信息的string实例操作,这操作是跨平台的方式操作,.GetExtension进行返回的路径字符串的扩展名,参数file.FileName进行重写,doc | .docx文件类型的名称代表。
在这里插入图片描述
图1
4、接着if判断(.doc)|(.docx) 文件类型的名称、改变他就是改变整个文件的类型、在这里他判断的是否是这两种类型,如果不是那么上传的文件将会失败或者来个提示“上传的文件不是word类型的文档,请选择word类型文件”,然后接着Contains用来返回一个值,fileExtension参数值。
5、然后string、fileName 局变量等于DateTime.Now.ToString他们是时间上的意义用来表计算机当时的时间也就是本地时间,同时也是用来记录的,他们三个是同分三工来进行工作,自定义文件名
(“yyyyMMddHHmmss”)也就是用时间来自定义文件的名称信息,加上参数file,FileName用来获取客户端完整的文件名称。
在这里插入图片描述
图2
二、把word文档保存到指定文件夹。
1、把word文档保存到指定文件夹里面,接下来if判断,如果Directory.Exists不存在,如果存在Server.MapPath将连接“~/Document/Title/Temp/”路径,如果这个路径不存在那么就要进行 Directory.CreateDirectory这两个方法来创建目录跟创建子目录,Server.MapPath ("~/Document/Title/Temp/"))用来指定物理文件中的文件路径。
2、接着拼接路径来存放word文档,string,filePath局变量命名等于等于Path对包含文件或路径信息的string实例操作,Combine字符串组成一个路径、但要两个字符串才能组成拼接成一个路径,也就相当于Server.MapPath("~/Document/Title/Temp")用来指定物理文件中的文件路径,同时也是组成拼接成的一个新的路径、也是路径名称,再加上fileName的局变量。
3、根据上面的情况那么在写这一小断file.SaveAs(filePath)也就完成了1-2小题的路径组成与创建的问题了。
在这里插入图片描述
图3
三、将word文档转化为html,保存到指定的文件夹
1、string字符串,自定义名称 htmlName然后等于,fileName.Replace设置将文件类型的文件用来转化成HTML的文件后的名称,然后fileExtension, “.html"将替换成HTML。
2、根据1小题替换成的HTML后进行拼接存放文件的路径:
string htmlPath = Path.Combine(Server.MapPath(”~/Document/Title/Temp/"), htmlName);
根据以上的代码显示的就可以拼接创建文件的路径以及名称;就可以进行存放了。
3然后将拼接创建成的文件读取到document中:
Document document = new Document(filePath);
根据以上的代码显示的就可以将文件读取到document中去了。
4、接着再次将文件转化为html格式并且可以保存到指定的路径下,那么从以下的带码显示可以完成1-3小题的情况了。
document.SaveToFile(htmlPath, FileFormat.Html);
在这里插入图片描述
图4
四、读取内容与替换标签
1、首先就要读取到文件内容以及信息,那么在读取文件内容信息时,文件里的内容里面的字符串,就要用特殊的方法的读取里面的字符串了,ReadAllText就是读取字符串的最好的方法不过了,他可以读取里面的所有字符串,可根据图5中的第一段来描述。
2、接着之后就是要将HTML中的

标签替换钓了,替换也是有要求的,首先我们替换的

标签就要带有自定义属性的p标签,否则的话就替换不成了,不成的话就会报错了。
可根据图5中的第二三段来描述。
在这里插入图片描述
图5
五、正则表达式
1首先就是提取所有的P标签,然后用正则表达式\w\W的方法的选择在p标签里面的所有字符串了,这两个基本的正则选择就已经选择了所有的字符串了,接着/r表示回车:光标回到首页,不换行;\n表示换行:光标下移一行,不回行首, \r\n一般是用来组合使用的。
可根据图6的第一段来描述。
2、这就要声明一个键值来对集合的列表进行最终的保存结果,Dictionary<string, string>这是一个表示键值对的集合
可根据图6的第二段来描述。
在这里插入图片描述
图6
六、for 循环。
1、提取p标签的文字图片内容,以及获取p标签里面的内容,用来作为后面的方法,方便调用他的参数。
2、接着获取p标签里面的内容以及方法。
3、就要声明键值对集合的值
在这里插入图片描述
图7
七、以下内容就是判断以循环的内容是否成功或者失败了图8描述
在这里插入图片描述
图8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值