index.jsp中的核心代码:
<form method="post" action="add.jsp" enctype='multipart/form-data'>
上传图片:<input type="file" name="img">
名字:<input type="text" name="iname">
<input type="submit" value="提交">
</form>
add.jsp中的核心代码:
<%
request.setCharacterEncoding("UTF-8");
//获取本项目的路径 + 上传图片的路径
String path = application.getRealPath("/")+"upload"+"/image";
//判断当前目录是否存在,若不存在,则新建
if(!new File(path).isDirectory())
new File(path).mkdirs();
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(102400); //上传文件的最大限制 10M
fu.setSizeThreshold(1024);//设置上传时的临时内存
List fl = fu.parseRequest(request); //从请求中获取对象,并返回集合
Iterator it = fl.iterator(); //将集合迭代
boolean b = false;
//遍历集合中的每一个元素
while(it.hasNext()){
FileItem fm = (FileItem)it.next(); //获取文件
if(fm.isFormField()){ //如果是普通文件流,(获取请求参数不能再使用request.getParameter(arg0)方法了)
String val = fm.getString();
val = new String(val.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(val); //得到数据
}else{
//否则,就是上传的文件
String fmName = fm.getName(); //获取文件的名字 =---从表单中拿到的图片
//判断文件的类型
if(fm!=null&&fmName!=null&&fmName.endsWith("jpg")||fmName.endsWith("gif")){
b = true;
File f = new File(path+"/"+fmName);
fm.write(f); //将文件写到指定的文件地址
//out.println("图片名:"+fmName);
out.println("<img src='upload/image/"+fmName+"'/>");
}
}
}
if(!b){out.println("图片的格式只支持*。jpg或*.gif");}
%>