分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

下载、上传设计的技术点及关键代码

发布时间:2023-09-06 01:40责任编辑:沈小雨关键词:暂无标签

一、下载,一般用于数据下载,模板下载。Excel模板文件(以下简称,文件)下载为例,且是Maven项目。

1.首先要明确放在服务器的文件地址,

  放在java文件的同级目录,类名.class.getClassLoader.getResource(""),获取文件地址,在开发阶段没问题,但Maven打成war包发布后URL会找不到。

URL输出为,xxx/webapp/WEB-INF/classes/com.xxx.类名。注意是开发阶段没问题。manve打成war包发布,模块是单独的jar包原因吧。

正确做法:

1.1.把模板放置到xxx.web模块的src/main/resources目录template/*.xlsx下;

1.1.1修改pom.xml文件,补充<exclude>标签

  <build>

  ...

  <directory>src/main/resources</directory>

       <artifactId>maven-war-plugin</artifactId>

       <targetPath>WEB-INF/classes</targetPath>

  <excludes>

    <exclude>template/*</exclude>

  </excludes>

  </build>

注意,因为不排除*.xlsx文件,打包后的模板文件会损坏。

1.2 获取路径代码

URL fileURL = Thread.currentThread().getContextClassload().getResource("template/*.xlsx");

File file = new File(fileURL.toURI());

//设置response header

//设置response 文件类型(可选)

//设置response contentLength

InputStream input = new FileInputStream(file);

BufferedOutputStream bos = new FileInputStream(response.getOutputStream());

byte[] byteArr = new byte[2048];

while(input.read(byteArr) != -1){

  bos.write(byteArr);

}

input.close();bos.close();

二、上传,包含,文件上传和Excel解析

1.页面注意提交表单必须是enctype="multipart/form-data"这个属性。

2.如果想补充参数,注意查看浏览器提交内容,也是附件的形式提交的,后台取值与去附件类似。

//解析附件部分:

//commons-fileupload-1.3.2.jar/org.apache.commons.fileupload.disk

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileupload upload = new ServletFileupload();

List<FileItem> list = (List<FileItem>)upload.parseRequest(request);

//POI解析Excel部分:

for(FileItem item :list){

  InputStrem input = item.getInputStream();

  Workbook wb = WorkbookFactory.create(input);

  Sheet sheet  = wb.getSheet("Sheet1");

  int rows = sheet.getPhyscalNumerOfRows();

  // for,rows->  Row row = sheet.getRow(rowNum);

  row.getCell(columnNum);

//注意,row.getCell(columnNum);取出的Cell对象不一定是String类型,需要根据不同的类型判断(或者找个取值的Utils文件处理)。

}

上传,主要还是校验。

下载、上传设计的技术点及关键代码

原文地址:https://www.cnblogs.com/xiaoxiaozhouzhou/p/8401439.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved