/**
*
* 上传文件
*
*/
public class FileUploadServlet2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 1.创建磁盘文件项工厂----这里的temp为临时文件目录
String path_temp = this.getServletContext().getRealPath("temp");
DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 1024, new File(path_temp));
// 2.创建文件上传的核心类
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件名的编码----以防文件名乱码
upload.setHeaderEncoding("utf-8");
// ServletFileUpload的API
boolean multipartContent = upload.isMultipartContent(request);// 判断表单是否是文件上传的表单
if (multipartContent) {
// 是文件上传的表单
// **解析request获得文件项集合
List<FileItem> parseRequest = upload.parseRequest(request);
if (parseRequest!=null) {
for (FileItem item : parseRequest) {
//判断是不是一个普通表单项
boolean formField = item.isFormField();
if (formField) {
//普通表单项
String fieldName = item.getFieldName();
String fieldValue = item.getString("UTF-8");//对普通表单项的内容编码
} else {
//获取文件名
String fileName = item.getName();
//得到输入流
InputStream in = item.getInputStream();
//获取文件存放路径
String path = this.getServletContext().getRealPath("upload");
//将文件存入相应目录
OutputStream out = new FileOutputStream(path+"/"+fileName);
IOUtils.copy(in, out);
in.close();
out.close();
//最后删除temp目录下的临时文件、
item.delete();
}
}
}
} else {
// 非文件上传表单,用原始获取方式request.getParameter("表单name");
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

最新文章

  1. 同一行多个div宽度自适应布局
  2. Oldboy-Homework-Week1
  3. PHP 将下划线命名 转换为 驼峰式命名
  4. 用jQuery Mobile搭建一个简单的手机页面
  5. HTTP权威指南阅读笔记二:URL与资源
  6. error at ::0 can&#39;t find referenced pointcut解决办法(转载)
  7. API文档中,&lt;E&gt;、&lt;T&gt;、&lt;?&gt;分别代表什么意思
  8. Codeforces Round #312 (Div. 2) C. Amr and Chemistry 暴力
  9. 深入浅出Mybatis-分页
  10. segue生命周期
  11. PHP FTP
  12. iostat查看io情况(监控Linux的8种方式)
  13. 移动端 微信 网易 触屏滑动回弹菜单(css版)
  14. POJ 1323 Game Prediction#贪心
  15. 远离DoS攻击 Windows Server 2016发布DNS政策
  16. Apache Flume日志收集系统简介
  17. java Socket实例
  18. 转《基于Ionic3实现微信支付和支付宝支付》
  19. session和cokkie的区别与作用
  20. Json Web Token JJWT

热门文章

  1. 【C#】无损转换Image为Icon 【C#】组件发布:MessageTip,轻快型消息提示窗 【C#】给无窗口的进程发送消息 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方 【C#】DataRowState演变备忘
  2. Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException
  3. C语言细节笔记2
  4. HTML5开发实战——Sencha Touch篇(1)
  5. qt之旅-1纯手写Qt界面
  6. Timus 1545. Hieroglyphs Trie的即学即用 实现字典提示功能
  7. extjs grid 列顺序紊乱问题
  8. Virtual IP address
  9. android stdio 异常
  10. Buildroot构建指南——根文件系统(Rootfs)【转】