开发工具与关键技术: VS 中的上传数据
作者: 木有窝的鸟~小通
撰写时间:2019年5月5日
我们知道,做项目的时候经常会有数据的连接,项目需要大量的数据统计各种每个板块它所需要的承载的信息点,比如导入数据,数据有很多,在学校考试中有学生成绩、有考试时间、有难度程度题目或者说学生、教师人类群体等等,各种各样的分类。而上传数据其实在我们的项目中也是经常使用的一种知识板块,它可以将数据传进指定的表格中,在表格中将数据呈现出来给用户看。而上传数据就是将两条或者两条以上的数据导入项目中,却不止单单一条数据。
上传数据在项目中是经常用到的,很多时候如果说在项目中一条一条的将数据加进去,不仅花费的时间多,而且可能效果不好,可以因为马虎将数据加进去的时候打错了,造成不必要的麻烦。所以说,批量导入可以在表格中实现数据,通过表格再把数据导人项目中,不仅简化了程序,而且如果说有上万条数据的话简直不敢想象。
更通俗的说将批量导入不仅方便了我们做项目,而且节省了很多时间,还可以它可以将极其复杂的程序简单化。
首先使用一个插件,使用HttpPostedFileBase (充当类的基类,这些类提供对客户端已上载的单独文件的访问) ,再创建新的一个实体类记录状态和文本(State、Text),
string fileExtension = Path.GetExtension(file.FileName) : 判断导入的文本类型是否正确。
获取指定文件扩展名:"(.doc)|(.docx)".Contains(fileExtension)。
自定义文件名: string fileName = DateTime.Now.ToString(“yyyyMMddHHmmss”) + file.FileName
第一步把Word文档保存到指定的文件夹:
1、判断路径是否存在,若存在则直接拼接路径,否则创建路径再拼接
Exists:确定给定路径是否引用磁盘上现有目录
CreaateDirectory:在指定路径创建所有目录和子目录
2、拼接存放word文档的路径
string filePath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), fileName);
Combine:将两个字符串组合成一个路径
然后保存上载文件:file.SaveAs(filepath)。
第二步将word文档转化为html,保存到指定的文件夹:
1、设置文件转化为HTML文件后的名称,后缀替换为.html:
string htmlName = fileName.Replace(fileExtension, “.html”);
2、拼接存放文件的路径:
string htmlPath = Path.Combine(Server.MapPath("~/Document/Title/Temp/"), htmlName);
3、将文件读取到document中
4、将文件转化为html格式并保存到指定的路径下
5、读取文件内容,ReadAllText读取文件中所有的字符串
6、将HTML中的替换为带有自定义属性的p标签
如下显示:
Regex:表示不可变的正则表达式
Replace:在指定的输入字符串neural,使用指定的替换字符串替换与指定正则表达式匹配的所有字符串。
第三步,通过正则表达式获取内容,作为后面方法调用的参数
获取内容方法,声明键值对集合,声明存放输出数据的变量:
控制器上就写完了,然后在页面写上传方法,如下显示:
上传到的数据再进入最后一步就是保存数据,先判断数据是否重复,如果重复就不能上传,完成之后弹出保存成功的对话框和关闭对话框。
上传数据不仅可以简化我们的工作量,而且更直接更简洁的快速的将数据导入项目表格。