码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-02-01 23:16:35      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:close   src   out   补充   post   main   div   uil   buffered   

一、下载,一般用于数据下载,模板下载。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文件处理)。

}

上传,主要还是校验。

 

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

标签:close   src   out   补充   post   main   div   uil   buffered   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!