导入试题原先,我的HTML里面有写了文件上传表单,并设置改_题库配置代码">
赞
踩
大家在做项目的时候,不难遇到导入导出,下面我们讲一下,导入的代码该怎么写。
首先在HTML页面设置一个点击按钮再设置ID,然后在 script调用方法,
<button type="button" class="btn btn-outline-secondary" id="ImportTitles" onclick="importTitles()">导入试题</button>
原先,我的HTML里面有写了文件上传表单,并设置改变事件的代码,
- @*文件上传表单*@
- <div style="display: none">
- <form id="frmUpWord" action="UpLoadWord" method="post" enctype="multipart/form-data">
- @*限制上传的文件类型为“.doc,.docx”*@
- <input type="file" name="file" accept=".doc,.docx" onchange="uploadWord()" />
- </form>
- </div>
并且会在里面设置一个id,为后面做铺垫,在后面会进行调用,不强制要求,也可以在后面代码的时候进行添加。
分析一下这个文件上传表单的一些属性吧,enctype 属性规定在发送服务器之前应如何对表单数据进行编码。
multipart/form-data 对字符编码,在使用包含文件上传控件的表单时,必须使用该值。
然后,限制上传文件的类型为.doc,.docx
接下来,在script里面写下,下载的模板。
- //下载模板
- function downloadTemplate()
- {
- window.open("DownloadTemplate");
- }
然后设置一个方法,调用导入试题的按钮ID
- //导入试题
- function importTitles()
- {
- $("#frmUpWord input[type='file']").click();
- }
然后,设置一方法触发点击事件
- //上传文件
- function uploadWord()
- {
- $("#frmUpWord").ajaxSubmit(function () {
-
- });
- }
既然是导入模板,那肯定需要下载模板,下面我们来写一下。
定义一个变量,拼接下载模板的路径,然后判断文件是否存在,如果存在就执行路径,并且写上文件的名称,如果不存在,就返回模板文件不存在。
- public ActionResult DownloadTemplate()
- {
- string templateFile = Server.MapPath("~/Document/Temp/批量导入模板.docx");
-
- //判断文件是否存在
- if (System.IO.File.Exists(templateFile))
- {
- return File(templateFile, "application/vnd.ms-excel", "批量导入试题模板.docx");
- }
- else {
- return Content("模板文件不存在!");
- }
- }
跳转到控制器写UpLoadWord方法的代码。
思路: 我们首先需要把这个word文档保存到指定目录下,然后再将word文档转换为HTML文档也保存到指定的目录下面, 然后需要读取文档里面的所有内容。
详细分析:设置方法,这路会用到一个类ReturnJson局部变量,这个类里面存在状态、状态码、文本、附加数据。 首先使用if else 判断这个name不等于空,还要判断上传的文件是否为word文档,把文件名放进去获取文件后缀(Path 对包含文件或目录路径信息的string实例执行操作)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。