文件上传
来源:互联网 发布:信捷usb编程电缆和三菱 编辑:程序博客网 时间:2024/06/08 17:11
一、简介
使用form表单上传文件,使用post传参方式,利用抓包工具可以直接查看传递的内容,但若是图片等,那么会在请求包体中显示为乱码,此时,我们可以根据请求包的结构来解析,最终取得上传的文件。更为简洁的方法就是,使用已经包装较为完善的工具包。
二、环境
所需jar包commons-fileupload-1.3.2.jarcommons-io-2.5.jar下载地址http://commons.apache.org/proper/commons-fileupload/http://commons.apache.org/proper/commons-io/
三、实例
jsp
<form action="../register.servlet" method="post" enctype="multipart/form-data"> userName:<input type="text" value="" name="username"></input><br/> password:<input type="password" value="" name="password"></input><br/> picture:<input type="file" name="picture"></input><br/> file:<input type="file" name="picture"></input><br/> <input type="submit" value="提交" /></form>
java
package com.upload.servlet;import java.io.File;import java.io.IOException;import java.util.List;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.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;@WebServlet("/register.servlet")public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); /*设置编码格式*/ servletFileUpload.setHeaderEncoding("utf-8"); try { List<FileItem> list = servletFileUpload.parseRequest(request); for (FileItem fileItem : list) { if(fileItem.isFormField()){/*表单*/ String name = fileItem.getFieldName(); /**设置表单获取的值的编码格式/ String value = fileItem.getString("utf-8"); System.out.println(name+":"+value); }else{/*文件*/ String name = fileItem.getName(); String path = getServletContext().getRealPath("/")+"upload"; System.out.println(path); File file = new File(path); /*若是文件不存在,则创建*/ if(!file.exists()){ file.mkdirs(); } File saveFile = new File(file, name); fileItem.write(saveFile); } } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}
0 0
- 文件上传---文件上传
- 上传文件
- 文件上传
- 上传文件
- 文件上传
- 文件上传
- 上传文件
- 上传文件
- 文件上传
- 文件上传
- 文件上传
- 文件上传
- 文件上传
- 文件上传
- 文件上传
- 上传文件
- 文件上传
- 文件上传
- Android 获取蓝牙设备类型
- SuperMap iCloudManager for Docker 搭建流程
- Spring MVC 实现文件上传功能
- 分析 fastcgi_temp 错误以及 Nginx 的 Buffer 机制
- jquery 获取当前页面的radio单选框自定义参数
- 文件上传
- 【2017.04.17】腾讯一面面经
- GPU深度发掘(一)::GPGPU数学基础教程
- APP安全报告第十九期:10款热门射击手游最高安全评分刚好及格!
- iOS 文字加下划线!
- 内网穿透神器ngrok使用
- ScrollView嵌套ListView解决方案
- 递归判断一个字符串是否回文
- UINavigationController UIStatusBar 动画隐藏