用这两个jar包
java端
//解析和检查请求,是否是post方式,是否是二进制流格式 enctype="multipart/form-data"
Boolean isMultipart= ServletFileUpload.isMultipartContent(req);
if (isMultipart) {
//如果是,则上传
try {
//创建FileItemFactory对象
FileItemFactory factory=new DiskFileItemFactory();
//创建文件上传的处理器
ServletFileUpload upload=new ServletFileUpload(factory);
//解析请求
List<FileItem> items=upload.parseRequest(req);
//迭代出每一个FileItem
for (FileItem item : items) {
String fileName = item.getFieldName();
if (item.isFormField()) {
//普通的表单控件
String value = item.getString("utf-8");
System.out.println(fileName + "->" + value);
} else {
//上传文件的控件
System.out.println(fileName + "->" + item.getName()); //一个的标签的name,一个是文件的name
item.write(new File("E:/", item.getName())); //把上传的文件保存到某个文件中
}
}
}catch (Exception e) {
e.printStackTrace();
}
jsp端:
注意:form要有enctype="multipart/form-data"和,input里要有name值
<form action="/servlet/StudentInfoServlet?order=addStu" method="post" enctype="multipart/form-data">
<table width="497" border="1" align="center">
<tr>
<td height="39" colspan="3" bgcolor="#00FFFF"><div align="center" class="cl">修改个人详细信息</div></td>
</tr>
<tr>
<td width="112" height="65" bgcolor="#00FFFF" class="ll" style="font-size: 24px">学号:</td>
<td width="154" bgcolor="#9966CC"><input type="text" name="sno"></td>
<td width="209" rowspan="5"><input type="file" value="添加学生照片" name="uploadImg"></td>
</tr>
<tr>
<td height="66" bgcolor="#00FFFF" class="ll" style="font-size: 24px">姓名:</td>
<td bgcolor="#9966CC"><input type="text" name="name"></td>
</tr>
<tr>
<td height="63" bgcolor="#00FFFF" class="ll" style="font-size: 24px">性别:</td>
<td bgcolor="#9966CC"><input type="text" name="sex"></td>
</tr>
<tr>
<td height="64" bgcolor="#00FFFF" class="ll" style="font-size: 24px">专业:</td>
<td bgcolor="#9966CC"><input type="text" name="speciality"></td>
</tr>
<tr>
<td height="86" bgcolor="#00FFFF" class="ll" style="font-size: 24px">班级:</td>
<td bgcolor="#9966CC"><input type="text" name="classname"></td>
</tr>
<tr>
<td><input type="submit" id="confirmBtu" value="确认添加"></td>
</tr>
</table>
</form>