上传:(W11 upLoad.jsp和UploadServlet)

//存放文件上传的路径

private String dirPath = "D:/upload";


//创建一个上传文件的方法,用apache提供的上传组件实现(2个相关联的包)public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws Exception{//创建文件上传工厂对象FileItemFactory factory = new DiskFileItemFactory();//创建文件上传的核心类ServletFileUpload upload = new ServletFileUpload(factory);//设置单个文件允许的最大大小upload.setFileSizeMax(10*1024*1024);//10M//设置表单中所有文件的最大容量,设为30Mupload.setSizeMax(30*1024*1024);//30M//设置文件名的编码方式,可以不用设置//相当于request.setCharacterEncoding("utf8");upload.setHeaderEncoding("utf8");//判断是否文件上传表单if (upload.isMultipartContent(request)) {//把请求数据转换为FileItem对象,将所有FileItem对象放入集合中Listlist = upload.parseRequest(request);

for (FileItem item : list) {

//判断是否是普通文本数据 form的text等

if (item.isFormField()) {

//得到表单元素的名称和值(key、value)

System.out.println(item.getFieldName());//key

item.getString();//value

//得到表参数中对应的数据

System.out.println(item.getString("utf8"));

}else {//说明是文件

String name = item.getName();

String id = UUID.randomUUID().toString().replace("-", "");//去掉uuid的“-”

if (name==null||name.isEmpty()) {

continue;

}

//生成新的文件名

name = id+"-"+name;

//如果上传目录不存在,创建

File f = new File(dirPath);

if (!f.exists()) {

f.mkdirs();

}

//创建目标文件(两者组合一个路径)

File file = new File(dirPath,name);

//上传文件

item.write(file);

//删除完上传过程中产生的临时文件

item.delete();

}

}

}

}





注:******

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 本文包括:1、文件上传概述2、利用 Commons-fileupload 组件实现文件上传3、核心API——Dis...
    廖少少阅读 12,618评论 5 91
  • 一、文件上传概述 实现web开发中的文件上传功能,需完成如下二步操作在web页面中添加上传输入项在servlet中...
    yjaal阅读 2,938评论 0 22
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,918评论 0 38
  • 我们的孩子应该是什么样子的呢?他们有尊严,守纪律,举止得体,热爱学习!有良好的控制行为和情感的能力,自信,善于思考...
    小鑫读书会阅读 582评论 0 0