MVC下载Excel文件:js接受乱码 简单处理办法

原创 2015年01月18日 18:25:06

    在做考试系统的时候,需要向题库里面批量导入试题。所以在导题之前需要下载一个Excel模版。

MVC中下载模版,需要创建一个Excel模版,然后发到前台。即点击之后,弹出一个下载框,提示下载(保存位置)。

 

现象:在MVC中,点击下载模版按钮,不提示下载。

原因:js接受 FileResult类型乱码

 

   如果是单纯的生成一个特定的Excel的文件,然后发到前台,即没有参数的下载。如果是这样的话直接让Controller创建,返回一个FileResult文件,前台就直接弹窗提示了。

 

   但是下载导入模版,肯定是要根据具体的题型来下载对应的模版。即带参数的下载文件。

 

 

第一思路:带参数的查询,肯定要把前台 "题型"数据传递到后台,然后后台去查找对应的文件。

   js提交数据到Controller,然后生成模版,在发送到前台。

 

但是使用这种方法,前台在点击下载模版的时候,始终弹窗(不提示下载)……

 

   如果用js事件来提交数据的话,那么接受服务器发过来文件的就成了js里面的success事件处理。这样就带来了一个问题,js接受FileContentResult类型的数据全是乱码。

   然后,就开始了js为什么接收到是乱码。查了很多js FileResult类型之间的联系。直到看到开源中国社区的一个帖子。

一年前的问题,至今没有人回答……

我想,或许我已经走偏了。用js来向后台传递数据,肯定得找到js乱码的的原因。虽然看起来思路非常简单,但是这不知道如何解决乱码问题真的花不起时间了,

 

 

第二思路:直接略过JsView直接提交数据到后台

改用GET传值,从服务器上拿指定的文件。

即在选择题型的时候给  "下载模版" 的按钮 添加上参数。如图

 

   这样做的好处,就是View直接去调用Controller,Controller创建文件 之后,就可以把数据 直接返回到前台页面(提示下载)

   使用GET传值,唯一不好的就是。容易把 代码设计中的 变量以及 值 暴露出来。降低安全性。当然这些在前台显示的时候  可以利用加密解密来进行处理。

   这样就可以直接从服务器上拿 文件了。

   虽然换了一种方法,可以实现目的。但是感觉不用js与直接与Controller进行控制,有些不方便。用js来控制文件流,有很多值得优化的地方。

             在完成功能的基础上,还要继续进行优化。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

SpringMVC+POI下载文件模板和导出Excel

如果文件模板是固定的,直接放到服务目录下,然后可以用下面的代码下载 下载office模版       如果是需要从数据库查询出来导出的,则参考下面的代码 @RequestMapping(...
  • jiangzhexi
  • jiangzhexi
  • 2016年12月12日 18:45
  • 2967

SpringMVC+POI 实现Excel按模板方式简单导出功能

上节《SpringMvc+POI 处理Excel的导入操作》简单介绍Excel文件导入功能,本节写一个简单的Excel文件导出功能。 Excel文件导出时采用模板的方式导出,该方法只需要简单的几步即可...
  • OnePersonTZ
  • OnePersonTZ
  • 2015年11月25日 11:23
  • 17480

下载excel文件名字乱码问题处理

package com.dreamwin.cclib.naga.view; import java.io.File; import java.io.FileInputStream; impo...
  • youyou_yo
  • youyou_yo
  • 2015年09月09日 12:48
  • 690

SpringMVC生成Excel和PDF文件时文件名乱码的解决方案

SpringMVC生成Excel和PDF文件时文件名乱码的解决方案
  • u011712163
  • u011712163
  • 2017年02月09日 15:05
  • 1395

Asp.Net MVC导出下载excel

代码: 注意:编码方式可适当调整 ExportExcel Code public FileResult ExportExcel() { va...
  • zhifeiya
  • zhifeiya
  • 2017年04月22日 17:35
  • 867

java输出utf-8的csv文件时,文件中有中文,excel打开文件乱码问题解决

1.utf-8的文件分为两种一种是有bom,一种是无bom。java输出的utf-8的文件时无bom的。由于excel打开无bom的utf-8 csv文件时就会出现中文乱码, 即使中文输出时采用了u...
  • join_null
  • join_null
  • 2017年08月29日 10:52
  • 117

使用PHP下载Excel时会出现乱码的解决方法

编写代码,使用PHP下载一个我已经上传好的Excel时出现这个错误: 强行打开则出现乱码。 搜索了一下,有两个解释: 1、在下载的过程中不要 输出任何非文件信息,比如 echo log信息。 否...
  • specklelion
  • specklelion
  • 2016年10月09日 17:39
  • 746

Ajax 中文问题和导出Excel的问题

     最近做项目的时候自己再次用到了Ajax,可是这一次却偏偏出现了中文乱码,xmlHttp.responseText接受到的始终是 乱码,不管服务器端Header如何设置,始终是乱码,都烦扰了一...
  • shenzhen_mydream
  • shenzhen_mydream
  • 2009年03月17日 16:55
  • 9420

在Springmvc中导出报表下载Excel文件

controller层@Controller public class UseCaseController{ @Autowired private UseCaseService use...
  • sinat_31824863
  • sinat_31824863
  • 2016年01月14日 10:41
  • 3838

spring mvc 导出Excel乱码问题解决办法。

小虫今天 有遇到了恶心的问题。就是传说中的J2ee后台构造的对象,向前端导出Excel乱码的问题,哎 ,一言难尽。啥也不说了 直接上代码。。。这是我后台的对象。。。。在Sping MVC框架下写的 ...
  • u013733831
  • u013733831
  • 2016年11月22日 16:29
  • 1720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MVC下载Excel文件:js接受乱码 简单处理办法
举报原因:
原因补充:

(最多只允许输入30个字)