package com.wen.decorator;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
public class MultipartWrapper extends HttpServletRequestWrapper {
private Map<String, String[]> params = new HashMap<String, String[]>();
// private final static String PATH =
// "C:\\Users\\John_wen\\Workspaces\\MyEclipse 10\\FileUpload\\WebRoot\\upload\\";
public MultipartWrapper(HttpServletRequest request) throws FileUploadException, IOException {
super(request);
setParams(request);
}
private void setParams(HttpServletRequest request) throws FileUploadException, IOException {
boolean isMul = ServletFileUpload.isMultipartContent(request);
if (isMul) {// 如果为true表示是文件上传
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator fileItemIterator = upload.getItemIterator(request);
InputStream is = null;
while (fileItemIterator.hasNext()) {
FileItemStream fis = fileItemIterator.next();
is = fis.openStream();
if (fis.isFormField()) {
setFormField(fis.getFieldName(), is);
} else {
if (fis.getName() != null && !"".equals(fis.getName())) {
String path = request.getSession().getServletContext().getRealPath("/upload");
// 表示文件,上传操作
Streams.copy(is, new FileOutputStream(path + "\\" + fis.getName()), true);
}
params.put(fis.getFieldName(), new String[] { fis.getName() });
}
}
} else {// 正常流程
params = request.getParameterMap();
}
}
private void setFormField(String fieldName, InputStream is) throws IOException {
// 先取出params中对应的fieldName的值;
String[] values = params.get(fieldName);
if (params.containsKey(fieldName)) {
// 如果包含有key
values = Arrays.copyOf(values, values.length + 1);
values[values.length - 1] = Streams.asString(is);
params.put(fieldName, values);
} else {
params.put(fieldName, new String[] { Streams.asString(is) });
}
}
@Override
public String getParameter(String name) {
String[] values = params.get(name);
if (values != null) {
return values[0];
} else {
return null;
}
}
@Override
public Map<String, String[]> getParameterMap() {
return params;
}
@Override
public String[] getParameterValues(String name) {
String[] values = params.get(name);
if (values != null) {
return values;
} else {
return null;
}
}
}
永远的幸福a
- 粉丝: 24
- 资源: 14
最新资源
- 基于微信小程序的医院陪诊预约系统设计源码
- 基于微信小程序的简易情绪播放器设计源码
- 基于Python的haoyisheng好医生CME继续教育自动答题设计源码
- 基于Vue与TypeScript的就业驿站设计与实现源码
- not-fire3.avi 烟火侦测负样本视频
- c#联合halcon 实现了模板匹配,测量 找线找圆等功能,可连接相机测试
- 各种电力电子仿真matlab simulink仿真 单相全桥 半桥整流仿真 单相半波全波仿真 三相全桥 半桥整流仿真 三相半波全波仿真 三相桥式整流及其有源逆变仿真 单相桥式整流及其无源逆变仿真 升降
- 基于MATLAB的单闭环直流调速系统设计 本设计包括设计报告,仿真程序,电气接线图 设计要求 (1)该调速系统能进行平滑的速度调节,负载电机不可逆运行,具有较宽的调速范围(D≥10),系统在工作范围
- 基于电压外环PI控制和内环滑膜控制Buck变器控制仿真 输入20V,输出10V 采用电压外环pi控制,电感电流滑膜内环控制,含参考文献
- 基于三矢量模型预测电流控制的永磁同步电机仿真模型 基于电流模型预测单矢量 双矢量 改进三矢量都有,可在主页内搜索 1首先根据电流给 定值和反馈值计算三个矢量的作用时间ti、t j、t z,再合成期
- vcu应用层模型,实车量产在用 应用层建模学习,可通过成熟的模型,借鉴逻辑处理和算法,除整体模型外,每个功能有单独的模型,包含接口定义,支持编译
- cadance 1.8v LDO电路 cadance virtuoso 设计 模拟电路设计 bandgap ldo 电路设计版图设计及后仿教程 smic130nm工艺库 有电路有版图有工艺库 专业老师
- 三相DAB仿真模型 DAB两侧均采用三相半桥结构,输入3kV,输出1kV,输出功率200kW且可调,开关频率2000Hz, 变压器变比为3:1 模型采用单移相控制输出功率
- 131分割回文串.zip
- OS机械臂搭建仿真环境 擅matlab仿真,RRT避障算法,长机械臂,六自由度机械臂避障算法,避障仿真,无机械臂关节碰撞检测,动力学建模,线性化,能控能观性分析,极点配置,状态观测器设计,线性二次最
- 132分割回文串 II.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈