java 使用poi导入excel,在本地的windows系统下可以,但是部署到Linux下面就在报错

yp_xiaoliu 2016-10-19 05:22:46
用poi导入一个excel文件,本地运行是可以导入成功的,但是部署到测试环境就在报错。然后本地是windows系统,测试是Linux系统。前台用的是“ajaxFileUpload”插件上传,因为要实现的是上传成功之后,在页面上给一个弹框,提示上传成功。

报错信息:

主要代码如下:




后台代码:


有个问题是在测试环境上,点击上传之后根本没有进后台代码就在报错。在网上查了很多资料,都没有找到解决方法

坐等大神解答~~~~~
...全文
1670 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
challenge_me 2018-10-08
  • 打赏
  • 举报
回复
是不是文件路径的问题,上传文件指定了文件路径,windows上有该文件路径,而linux没有
hz890 2016-10-20
  • 打赏
  • 举报
回复
问题似乎是出在“上传文件”这一块。 “ajaxFileUpload”插件楼主是否熟悉,本人对此了解不多。 要么试一下把“<form>...</form>”元素去掉,然后再看一下效果。 网上给出的示例,似乎不需要指定<form>...</form>!
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
有没有谁遇到过我这种问题的啊~~~~~~弄了两天了,一部署到测试环境导入就在报错!在自己本地和其他人的电脑上跑都是成功的!
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
引用 2 楼 reyoreyoreyo 的回复:
友好解决POI导入Excel文件行是不是为空 http://www.cnblogs.com/interdrp/p/4027159.html
我是本地运行是可以导入成功的。。部署到测试环境就在报错。一直找不到报错的原因。
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
最新测试情况,本地上传2013、2003、2010的excel都是没问题的,在测试环境上,上传2013的excel就会报那个错,但是上传2003和2010的就可以成功。这是什么原因呢?
专业挖坑 2016-10-20
  • 打赏
  • 举报
回复
poi好像对高版本的excel支持不好
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
引用 6 楼 qq_26508409 的回复:
// 检测是不是存在上传文件 boolean isMultipart = ServletFileUpload.isMultipartContent(request); //spring 要用 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; if (isMultipart) { System.out.println("~~~111111111111111111111~~~~~~~~~~~~~~~"); response.setCharacterEncoding("utf-8"); response.setContentType("application/x-download"); response.setHeader("Accept-Ranges", "bytes"); int fSize = Integer.parseInt(String.valueOf(uploadFile.length())); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 1024); factory.setRepository(new File("F:\\a")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(50 * 1024 * 1024); upload.setSizeMax(50 * 1024 * 1024); upload.setHeaderEncoding("UTF-8"); List<FileItem> items = null; try { // 解析request请求 System.out.println("~~~~~~~~~~~~~~~~~~~"); items = upload.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } if (items != null) { // 解析表单项目 Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); // 如果是普通表单属性 if (item.isFormField()) { // 相当于input的name属性 <input type="text" name="content"> String name = item.getFieldName(); // input的value属性 String value = item.getString(); System.out.println("属性:" + name + " 属性值:" + value); } // 如果是上传文件 else { // Client client =new Client(); // 属性名 String fieldName = item.getFieldName(); // 上传文件路径 String fileName = item.getName(); fileName = fileName .substring(fileName.lastIndexOf("/") + 1);// 获得上传文件的文件名 //client.upload(uploadPath+"\\"+fileName); response.setHeader("Content-Length", String.valueOf(fSize)); response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); try { item.write(new File(uploadPath, fileName)); message = "success"; } catch (Exception e) { message = "shi bai"; e.printStackTrace(); }
刚刚测试了一下,发现本地上传2013的excel是没问题的,在测试环境上,上传2013的会报那个错,但是上传2003的就可以成功。这是什么原因呢?
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
引用 7 楼 bree06 的回复:
这个错误是提示你该请求不是一个附件类型的请求
刚刚测试了一下,发现本地上传2013的excel是没问题的,在测试环境上,上传2013的会报那个错,但是上传2003的就可以成功。这是什么原因呢?
yp_xiaoliu 2016-10-20
  • 打赏
  • 举报
回复
引用 5 楼 hz890 的回复:
问题似乎是出在“上传文件”这一块。 “ajaxFileUpload”插件楼主是否熟悉,本人对此了解不多。 要么试一下把“<form>...</form>”元素去掉,然后再看一下效果。 网上给出的示例,似乎不需要指定<form>...</form>!
刚刚测试了一下,发现本地上传2013的excel是没问题的,在测试环境上,上传2013的会报那个错,但是上传2003的就可以成功。这是什么原因呢?
bree06 2016-10-20
  • 打赏
  • 举报
回复
这个错误是提示你该请求不是一个附件类型的请求
nikyotensai 2016-10-20
  • 打赏
  • 举报
回复
// 检测是不是存在上传文件 boolean isMultipart = ServletFileUpload.isMultipartContent(request); //spring 要用 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; if (isMultipart) { System.out.println("~~~111111111111111111111~~~~~~~~~~~~~~~"); response.setCharacterEncoding("utf-8"); response.setContentType("application/x-download"); response.setHeader("Accept-Ranges", "bytes"); int fSize = Integer.parseInt(String.valueOf(uploadFile.length())); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 1024); factory.setRepository(new File("F:\\a")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(50 * 1024 * 1024); upload.setSizeMax(50 * 1024 * 1024); upload.setHeaderEncoding("UTF-8"); List<FileItem> items = null; try { // 解析request请求 System.out.println("~~~~~~~~~~~~~~~~~~~"); items = upload.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } if (items != null) { // 解析表单项目 Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); // 如果是普通表单属性 if (item.isFormField()) { // 相当于input的name属性 <input type="text" name="content"> String name = item.getFieldName(); // input的value属性 String value = item.getString(); System.out.println("属性:" + name + " 属性值:" + value); } // 如果是上传文件 else { // Client client =new Client(); // 属性名 String fieldName = item.getFieldName(); // 上传文件路径 String fileName = item.getName(); fileName = fileName .substring(fileName.lastIndexOf("/") + 1);// 获得上传文件的文件名 //client.upload(uploadPath+"\\"+fileName); response.setHeader("Content-Length", String.valueOf(fSize)); response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); try { item.write(new File(uploadPath, fileName)); message = "success"; } catch (Exception e) { message = "shi bai"; e.printStackTrace(); }
reyoreyoreyo 2016-10-19
  • 打赏
  • 举报
回复
友好解决POI导入Excel文件行是不是为空 http://www.cnblogs.com/interdrp/p/4027159.html
yp_xiaoliu 2016-10-19
  • 打赏
  • 举报
回复
不知道是不是和部署的环境有关系,还是说我这边的提交类型之类的不对。跪求大神解答~~~

50,535

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧