日期:2014-05-18  浏览次数:20672 次

两段jsp代码为什么运行不起来呢? 问题在哪?
uploadimg1.jsp


Java code
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<FORM METHOD=POST ACTION="uploadimage2.jsp">
名称:<INPUT TYPE="text" NAME="name"><br>
图片:<INPUT TYPE="file" NAME="image"><br>
<INPUT TYPE="submit" value="提交">
</FORM>
</body>
</html>



uploadimg2.jsp


Java code

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="java.awt.*"%>

<%
    String name=request.getParameter("name");
    name=new String(name.getBytes("ISO-8859-1"));
    String ima=request.getParameter("image");
    
    try{
    String path=request.getRealPath("/");
    FileOutputStream ot=new FileOutputStream(path+name+".jpg");
    FileInputStream in = new FileInputStream(ima);
    JPEGImageDecoder jpgCodec=JPEGCodec.createJPEGDecoder(in);
    BufferedImage image=jpgCodec.decodeAsBufferedImage();
    JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(ot);
    encoder.encode(image);
    in.close();
    ot.close();
    out.print("上传成功!<br>");
    out.print("<IMG width=200 height=200 src='"+name+"'.jpg >");
    }
    catch(Exception e)
    {
    System.out.print(e.toString());
    }
%>


------解决方案--------------------
<INPUT TYPE="file" NAME="image">是file类型的,不能用request.getParameter(String param)去值.而且<form enctype="multipart/form-data">应该这样,你要是不用工具包,建议还是用actionForm取值吧!!我只这么取过,没这么取,不好意思!!
------解决方案--------------------
<form enctype="multipart/form-data" >

建议用smartUpload或Struts自带的