do_upload.jsp
[code="java"]<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB2312"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="picDeal.*" %>
/jsp:useBean
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
文件上传
上传中.....
<%
String uploadPath=application.getRealPath("/upload");
String picName=null;
int width=0,height=0;
//目标文件夹的路径必须使用绝对路径,不能用相对路径
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart==true){
try{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);//得到所有的文件
Iterator itr = items.iterator();
while(itr.hasNext()){//依次处理每个文件
FileItem item=(FileItem)itr.next();
String fileName=item.getName();//获得文件名,包括路径
if(fileName!=null)
{
File fullFile=new File(item.getName());
picName=fullFile.getName();
File savedFile=new File(uploadPath,fullFile.getName());
item.write(savedFile);
}
}
out.println("upload succeed!");
out.println("上传的图片如下:");
//分析图片, 获取图片的信息
pic.setData(picName);
session.setAttribute("picture",pic);
%>
上传的图片如下: |
> |
<%
}
catch(Exception e){
e.printStackTrace();
out.print("failed!");
}
}
else{
out.println("the enctype must be multipart/form-data");
}
%>
[/code]
PicRgb
[code="java"]package picDeal;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class PicRgb {
private int []rData;
private int []gData;
private int []bData;
private int width;
private int height;
//分析图片,参数为图片的名字
public PicRgb()
{
}
public void setData(String name){
Image image=null;
try{
File sourceimage = new File("upload/"+name);
image=ImageIO.read(sourceimage);
}
catch(IOException e){
}
//读取图像的高度&宽度
this.width=image.getWidth(null);
this.height=image.getHeight(null);
System.out.println(width);
System.out.println(height);
//读取图片像素信息
Image im=Toolkit.getDefaultToolkit().getImage("upload/"+name);
this.rData=new int[256];
this.gData=new int[256];
this.bData=new int[256];
int []pixels=new int[width*height];
try{
PixelGrabber pg=new PixelGrabber(im,0,0,width,height,pixels,0,width);
pg.grabPixels();
}catch(InterruptedException e){
e.printStackTrace();
}
ColorModel cm=ColorModel.getRGBdefault();
int red,green,blue;
for(int i=0;i<width*height;i++){
red=cm.getRed(pixels[i]);
this.rData[red]++;
green=cm.getGreen(pixels[i]);
this.gData[green]++;
blue=cm.getBlue(pixels[i]);
this.bData[blue]++;
}
}
public void setRData(int[] r)
{
this.rData=r;
}
public void setGData(int[] g)
{
this.gData=g;
}
public void setBData(int[] b)
{
this.bData=b;
}
public void setWidth(int w)
{
this.width=w;
}
public void setHeight(int h)
{
this.height=h;
}
public int getWidth()
{
return this.width;
}
public int getHeight()
{
return this.height;
}
public int[] getRData()
{
return this.rData;
}
public int[] getGData()
{
return this.gData;
}
public int[] getBData()
{
return this.bData;
}
}
[/code]
当使用up_load.jsp页面时 出现错误
提示 useBean使用的类不可用……弄了一下午,头都大了 - -