Servlet doPost方法同时上传图片和传递参数

上传图片和传递参数

上传图片和文件属于 enctype="multipart/form-data" 
form中加入 enctype="multipart/form-data"时整个表单被封装,字符将转成 二进制流,因此request.getParameter("user_type")是得不到值的:
默认情况,传递参数编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,
 
同时上传文件与图片
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

List items = null;
try {
     items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
} // 解析request请求
Iterator iter = items.iterator();
while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();
if (item.isFormField()) {  // 如果是表单域 ,就是非文件上传元素
    String name = item.getFieldName(); // 获取name属性的值
    String value = item.getString(); // 获取value属性的值
if (item.getFieldName().equals("intro")) {
    System.out.println(value+"yeah");
}
} else {
    String fieldName = item.getFieldName(); // 文件域中name属性的值
    String fileName = item.getName(); // 文件的全路径,绝对路径名加文件名
    String contentType = item.getContentType(); // 文件的类型
    long size = item.getSize(); // 文件的大小,以字节为单位
    File saveFile = new File("D:/test.jpg"); // 定义一个file指向一个具体的文件
try {
    item.write(saveFile);// 把上传的内容写到一个文件中
  } catch (Exception e) {
    e.printStackTrace();
  } 
}}

 

要解析二进制流来得到文本参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值