本文实现的是用jsp来上传图片,同时过滤图片格式和大小,来看下面详细的代码介绍吧!
package myBean;
import java.io.*;
public class uploadpic {
String picPath;//图片路径 (如:F:picturea.gif)
public String pictype[];//设置图片的后缀名
FileInputStream in;
int piclength;//设置图片的最大kb
public void setpicPath(String picPath)//获得图片的路径
{
this.picPath=picPath;
}
public void setpiclength(int piclength)//设置图片的最大长度
{
this.piclength=piclength;
}
public int getpiclength()
{
return piclength;
}
public boolean testlength()//判断图片的长度是否大于设定的最大长度
{
try{
in=new FileInputStream(picPath);
if(in.available()/1024>piclength)
return false;
}catch(IOException e)
{
System.out.println(e.getMessage());
}
return true;
}
public void setpictype(String[] pictype)//设置图片的扩展名
{
this.pictype=pictype;
}
public boolean testpictype()//判断图片的扩展名是否是规定的
{
if(pictype!=null)
{
for(int i=0;i<pictype.length;i )
{
if(picPath.endsWith(pictype))
return true;
}
return false;
}
return false;
}
}
以下是在jsp页面中调用uploadpic
首先要引入此bean所在的包
<%@page import="myBean.uploadpic" %>
<jsp:useBean id="pic" scope="page" class="myBean.uploadpic" />
下一条语句是得到上一层页面,也就是用户提交的图片路径!
String picp=codetostring.codeToString(request.getParameter("picPath"));
pic.setpicPath(picp);
pic.setpiclength(100);//以kb为单位
if(pic.testlength())
out.print("length ok<br>");
else
out.print("length ok");
String p1,p2;
p1=".jpg";
p2=".gif";
String[] type={p1,p2};
pic.setpictype(type);
if(pic.testpictype())
out.print("typeok");
else
out.print("type error");