package com.strong.upload.receive;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import com.strong.upload.dao.DaoUtils;
import com.strong.upload.javabean.User;
public class Receive extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置编码
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = null;
try {
//转换请求数据
items = upload.parseRequest(request);
} catch (FileUploadException e) {
throw new RuntimeException("转换请求失败!");
}
//遍历请求
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
//判断是上传文件,并且是指定上传框内的文件
if (item.getFieldName().equals("filexls")){
ArrayList<User> users = sava2Bean(item);
request.setAttribute("users", users);
DaoUtils.createUsers(users);//将数据储存到数据库中
//DaoUtils.readUsers();
}else{
System.out.println("文件名不正确");
}
}
}
}
request.setAttribute("type", "0");
request.getRequestDispatcher("/WEB-INF/jsp/showusers.jsp").forward(request, response);
}
public ArrayList<User> sava2Bean(FileItem item){
HSSFWorkbook hwb = null;
try {
//得到上传的文件
hwb = new HSSFWorkbook(item.getInputStream());
} catch (Exception e) {
throw new RuntimeException("获取文件失败!");
}
//获取一个表
HSSFSheet sheet = hwb.getSheetAt(0);
//创建储存数据的集合
ArrayList<User> users = new ArrayList<User>();
//解析表中的数据,并将数据封装
for (int i = 1; i <= sheet.getLastRowNum(); i++){
HSSFRow row = sheet.getRow(i);
//暂时储存一行数据
ArrayList<String> data = new ArrayList<String>();
for (int j = 0; j < row.getLastCellNum(); j++){
HSSFCell cell = row.getCell(j);
cell.setCellType(Cell.CELL_TYPE_STRING);
data.add(cell.toString());
}
users.add(new User(data.get(0),data.get(1),data.get(2),data.get(3),data.get(4)));
data.clear();
}
//以文件的形式保存到硬盘上
String fallname = item.getName();
String filename = fallname.substring(fallname.lastIndexOf("\\")+1, fallname.lastIndexOf("."));
try {
hwb.write(new FileOutputStream(new File("c:\\"+filename+"_upload.xls")));
} catch (Exception e) {
throw new RuntimeException("保存文件失败!");
}
return users;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
fileupload.zip (37个子文件)
fileupload
.project 2KB
.settings
.jsdtscope 493B
org.eclipse.wst.common.component 468B
org.eclipse.jdt.core.prefs 395B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.mymetadata 303B
WebRoot
css
showusers.css 237B
WEB-INF
web.xml 1KB
jsp
showusers.jsp 2KB
lib
mysql-connector-java-5.0.4-bin.jar 484KB
jstl-1.2.jar 405KB
poi-3.8-20120326.jar 1.74MB
commons-io-1.4.jar 106KB
commons-fileupload-1.2.1.jar 56KB
jsf-api.jar 314KB
jsf-impl.jar 1.15MB
classes
test
Main.class 3KB
com
strong
upload
control
Control.class 1KB
Delete.class 2KB
receive
Receive.class 6KB
javabean
User.class 1KB
dao
JdbcUtils.class 2KB
DaoUtils.class 3KB
Read
Read.class 1KB
index.jsp 2KB
META-INF
MANIFEST.MF 36B
src
test
Main.java 2KB
com
strong
upload
control
Delete.java 1KB
Control.java 1KB
receive
Receive.java 4KB
javabean
User.java 957B
dao
JdbcUtils.java 1KB
DaoUtils.java 2KB
Read
Read.java 909B
.classpath 545B
共 37 条
- 1
资源评论
IT痴者
- 粉丝: 203
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功