开发工具与关键技术:VS 如何上传文件数据
作者:赖文扬
撰写时间:2019年6月2日
在有些项目里面要把电脑的文件上传到项目里面,就是文件上传,那么要怎样才能把文件上传呢?首先要在cshtml里面写好项目的代码,然后再上面
里面写一个文件上传的表单,在
(下面截图)

上面的
<div>
里面还要写上一个表单,在表单里面一定要给它一个from的id,然后还要在表单里面用一个的标签,这个标签里面有上传文件的id和类型等,在里面写上一个accept的.doc,.docx的类,这个accept是限制上传的文件类型为:“.doc,.docx“,只要是文件是这个类型的那么就限制上传不了。(下面截图)

上面的
写完了之后,就在里面写上传文件的按钮和加载层、然后提交表单,提交表单里面要选择到上面的form表单的id,然后再写关闭加载层,关闭加载层里面要选择到上面的的id,然后再写上提醒提示的代码。上传文件的代码写完了之后就要写保存文件的代码,保存文件代码首先用function 来获取上面的保存按钮的点击事件,然后还要写上提示,再获取题目信息,获取题目信息根据注键的ID来获取,再对题目信息进行编码,将字符串作为URL组件进行编码,然后再判断保存的题目信息是否完整,判断题目的完整是根据获取上面的题目信息来判断的。然后还要写加载层。最后是弹出保存成功的对话框和关闭模态框、最后写上提醒提示的代码。
(下面截图)

cshtml的代码写完了之后,就来到控制器这边写上传文件和保存文件的控制器的代码。首先要写的是上传文件的控制器代码,一开始是引入ReturnJson这个类,这个类里面主要是放状态、状态码、文本、附加数据这四个字符串,引入类了之后就判断导入的文件类型是否正确和获取文件扩展名,然后在自定义文件名。文件名自定义写好了之后就要把word文档保存到指的文件夹里面,再判断路径是否存在,如果存在就直接拼接路径,不然就是创建路径再拼接,还要写好拼接存放word文档的路径。
(下面截图)

写好拼接存放word文档路径之后就将word文档转化为html,保存到指定的文件夹。然后设置文件转化为HTML文件后的名称,后缀替换为.html,还有拼接存放文件的路径,将文件读取到document中、将文件转化为html格式并保存到指定的路径下,还要读取文件内容ReadAllText读取文件中所有的字符串,读取所有的P标签和声明一个键值对集合的列表保存最终的结果,最后是声明存放输出数据的变量、判断上传的文件不是word类型的文档,请选择word类型的文档和导入的文件是否为空。
(下面截图)

上传文件的控制器代码写完了之后,还要写怎样获取标签里面的内容和怎样处理带图标的P标签,写完了之后才能写保存文件的控制器代码,现在就来写一下保存文件的控制器的代码。一开头保存文件的代码和上面上传文件的代码差不多一样的,一开始也是要引用ReturnJsonVo,不过保存文件的代码比上面上传文件的代码复杂繁琐得多了,首先是判断提交的数据是否完整,然后再对试题信息进行了解、去掉a标签和空格。
(下面截图)

然后在声明保存题目各个部分的列表来获取题目,首先是题目信息(题干+选项)列表、题目类型列表、难度列表、知识点列表、正确答案列表、错误数据列表。然后再分割题目信息,首先是匹配题目,声明存放分割成功题目的列表,再判断是否匹配成功,分别获取每道题的题目信息,然后再分割字符串获取题型信息、分割字符串获取难度系数、分割字符串获取使用单位、分割字符串获取知识点、分割字符串获取题目信息、最后是替换最后的
(下面截图)

然后还要处理题目信息、去除当前导入的试题中重复的试题、去掉与数据库重复的试题、处理图片。处理图片是获取题干+选项信息、获取图片文件名的对象、判断是否有图片、还要改一下路径、获取图片文件名、替换路径、移动图片。最后是保存数据,判断数据试题不完整,请刷新之后重新导入试题,判断数据异常。
(下面截图)

最后启动运行就可以了。
(下面截图)


cshtml的代码写完了之后,就来到控制器这边写上传文件和保存文件的控制器的代码。首先要写的是上传文件的控制器代码,一开始是引入ReturnJson这个类,这个类里面主要是放状态、状态码、文本、附加数据这四个字符串,引入类了之后就判断导入的文件类型是否正确和获取文件扩展名,然后在自定义文件名。文件名自定义写好了之后就要把word文档保存到指的文件夹里面,再判断路径是否存在,如果存在就直接拼接路径,不然就是创建路径再拼接,还要写好拼接存放word文档的路径。
(下面截图)

写好拼接存放word文档路径之后就将word文档转化为html,保存到指定的文件夹。然后设置文件转化为HTML文件后的名称,后缀替换为.html,还有拼接存放文件的路径,将文件读取到document中、将文件转化为html格式并保存到指定的路径下,还要读取文件内容ReadAllText读取文件中所有的字符串,读取所有的P标签和声明一个键值对集合的列表保存最终的结果,最后是声明存放输出数据的变量、判断上传的文件不是word类型的文档,请选择word类型的文档和导入的文件是否为空。
(下面截图)

上传文件的控制器代码写完了之后,还要写怎样获取标签里面的内容和怎样处理带图标的P标签,写完了之后才能写保存文件的控制器代码,现在就来写一下保存文件的控制器的代码。一开头保存文件的代码和上面上传文件的代码差不多一样的,一开始也是要引用ReturnJsonVo,不过保存文件的代码比上面上传文件的代码复杂繁琐得多了,首先是判断提交的数据是否完整,然后再对试题信息进行了解、去掉a标签和空格。
(下面截图)

然后在声明保存题目各个部分的列表来获取题目,首先是题目信息(题干+选项)列表、题目类型列表、难度列表、知识点列表、正确答案列表、错误数据列表。然后再分割题目信息,首先是匹配题目,声明存放分割成功题目的列表,再判断是否匹配成功,分别获取每道题的题目信息,然后再分割字符串获取题型信息、分割字符串获取难度系数、分割字符串获取使用单位、分割字符串获取知识点、分割字符串获取题目信息、最后是替换最后的
<br>
,来获取答案。(下面截图)

然后还要处理题目信息、去除当前导入的试题中重复的试题、去掉与数据库重复的试题、处理图片。处理图片是获取题干+选项信息、获取图片文件名的对象、判断是否有图片、还要改一下路径、获取图片文件名、替换路径、移动图片。最后是保存数据,判断数据试题不完整,请刷新之后重新导入试题,判断数据异常。
(下面截图)

最后启动运行就可以了。