package org.java.Servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.FileUploadBase;
import org.apache.commons.fileupload.ProgressListener;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.java.bean.Type;
import org.java.service.TypeService;
import org.java.service.impl.TypeServiceImpl;
/**
* Servlet implementation class AddTypeServlet
*/
@WebServlet("/AddTypeServlet")
public class AddTypeServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
TypeService typeService=new TypeServiceImpl();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// String photo = request.getParameter("photo"); //图片
// String descript = request.getParameter("descript"); //描述
// int brands = Integer.parseInt(request.getParameter("brands")) ; //品牌
// String type = request.getParameter("type"); //型号
// double price = Double.parseDouble(request.getParameter("price")) ; //单价
// int number = Integer.parseInt(request.getParameter("number")); //数量
// Type type1=new Type(type,photo,descript,price,number,brands);
// if(typeService.add_Type( type1) > 0) {
// System.out.println("添加成功!");
// request.getRequestDispatcher("page/form.jsp").forward(request, response);
// }
String photo = ""; //图片
String descript = ""; //描述
int brands = 0; //品牌
String type = ""; //型号
double price = 0; //单价
int number = 0; //数量
//得到上传文件的保存目录
String savePath = new String("D:/eclipse-workspace/SaleServer/WebContent/files_uploads");
//上传时生成的临时文件保存目录
String tempPath = new String("D:/eclipse-workspace/SaleServer/WebContent/files_temp");
File tmpFile = new File(tempPath);
if (!tmpFile.exists()) {
//创建临时目录
tmpFile.mkdir();
}
System.out.println("文件开始上传...");
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
System.out.println("1、创建一个DiskFileItemFactory工厂");
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
factory.setSizeThreshold(1024*100);//设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB
//设置上传时生成的临时文件的保存目录
factory.setRepository(tmpFile);
//2、创建一个文件上传解析器
System.out.println("2、创建一个文件上传解析器");
ServletFileUpload upload = new ServletFileUpload(factory);
//监听文件上传进度
upload.setProgressListener(new ProgressListener(){
public void update(long pBytesRead, long pContentLength, int arg2) {
System.out.println("文件大小为:" + pContentLength + ",当前已处理:" + pBytesRead);
}
});
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
System.out.println("3、判断提交上来的数据是否是上传表单的数据");
if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}
//设置上传单个文件的大小的最大值,目前是设置为1024*1024*10字节,也就是10MB
upload.setFileSizeMax(1024*1024*10);
//设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为30MB
upload.setSizeMax(1024*1024*30);
//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
System.out.println("4、使用ServletFileUpload解析器解析上传数据");
List<FileItem> list = upload.parseRequest(request);
int i = 1; //标志位,输出第几行
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
//SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
// System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
for(FileItem item : list){
//如果fileitem中封装的是普通输入项的数据
if(item.isFormField()){
String name = item.getFieldName();
System.out.println("第"+i+"列表单名称:"+name);
//解决普通输入项的数据的中文乱码问题
String value = item.getString("UTF-8");
//value = new String(value.getBytes("iso8859-1"),"UTF-8");
System.out.println("第"+i+"列表单值:"+ value); //文件上传的用户名
if(i == 2)
descript = value;
if(i == 3)
brands = Integer.parseInt(value);
if(i == 4)
type = value;
if(i == 5)
price = Double.parseDouble(value);
if(i == 6)
number = Integer.parseInt(value);
i++; //循环一遍,行数+1
}
else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println("第"+i+"列文件名:"+filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分 (文件名部分新增了时间、用户名、文件名)
filename = filename.substring(filename.lastIndexOf("\\")+1);
System.out.println("第"+i+"个文件名:"+filename);
//得到上传文件的扩展名
String fileExtName = filename.substring(filename.lastIndexOf(".")+1);
//如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法
System.out.println("第"+i+"个上传的文件的扩展名是:"+fil
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
基于MVC的服务器销售系统 (301个子文件)
AddTypeServlet.class 8KB
User.class 3KB
TypeDaoImpl.class 3KB
UserDaoImpl.class 3KB
Type.class 3KB
RegisterServlet.class 3KB
BrandAndType.class 3KB
LoginServlet.class 2KB
BrandDaoImpl.class 2KB
GoodsServlet.class 2KB
SelBrandServlet.class 2KB
Brand.class 2KB
MysqlUtil.class 1KB
CodeFilter.class 1KB
Test.class 1KB
AddTypeServlet$1.class 1KB
UserServiceImpl.class 1KB
TypeServiceImpl.class 980B
BrandServiceImpl.class 793B
TypeService.class 275B
UserService.class 271B
TypeDao.class 263B
UserDao.class 259B
BrandService.class 227B
BrandDao.class 215B
.classpath 842B
org.eclipse.wst.common.component 482B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.min.css 118KB
style.css 19KB
tinymce.css 9KB
default.css 9KB
select.css 2KB
editor.css 605B
glyphicons-halflings-regular.eot 20KB
tinymce.gif 12KB
default.gif 7KB
home.gif 6KB
serverIcon01.gif 5KB
Female.gif 2KB
Male.gif 1KB
etc_24.gif 1KB
etc_33.gif 1KB
etc_32.gif 1KB
etc_36.gif 1KB
etc_31.gif 1KB
etc_30.gif 1KB
etc_25.gif 1KB
etc_26.gif 1012B
etc_34.gif 992B
etc_35.gif 989B
etc_27.gif 978B
etc_12.gif 687B
etc_02.gif 687B
etc_16.gif 685B
etc_15.gif 683B
etc_03.gif 682B
etc_08.gif 680B
etc_01.gif 671B
etc_09.gif 670B
etc_13.gif 666B
etc_06.gif 660B
etc_14.gif 657B
etc_10.gif 657B
etc_07.gif 657B
etc_11.gif 655B
etc_04.gif 655B
etc_05.gif 643B
etc_22.gif 473B
etc_20.gif 453B
etc_18.gif 453B
etc_17.gif 445B
etc_23.gif 444B
etc_19.gif 423B
topbg.gif 415B
etc_29.gif 342B
etc_21.gif 322B
etc_28.gif 303B
lefttop.gif 204B
tcbg.gif 203B
toolbg.gif 133B
inputbg.gif 82B
righttop.gif 82B
th.gif 76B
leftmenubg.gif 76B
pre.gif 70B
list.gif 70B
next.gif 70B
list1.gif 70B
div.gif 64B
px.gif 61B
ol.gif 60B
ul.gif 60B
dl.gif 59B
rlist.gif 56B
p.gif 54B
line.gif 51B
leftline.gif 50B
PIE.htc 40KB
image.html 3KB
共 301 条
- 1
- 2
- 3
- 4
秋枫萧竹
- 粉丝: 67
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电力场景设备漏油检测数据集VOC+YOLO格式338张1类别.7z
- 基于yolov8+pyqt5实现精美界面支持图片视频和摄像检测源码.zip
- 用C语言为母亲节献上一份特别的祝福.zip
- LCD1602液晶显示屏的深入探索与实用指南.zip
- 基于Matlab人脸肤色定理的教师人数统计+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab霍夫曼变换的表盘读数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab火灾烟雾检测源码带GUI界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的恶劣天气交通标志识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的霍夫曼变换的表盘示数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的车道线识别系统 +源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0