JSP中实现图片的无组件上传

用户通过网页像提交参数一样向服务器上传图片,这在JSP应用中很常用,这里将用一个简单的方法,通过以字符串的形式获取用户提交的图片,再把图片的字符形式转换成文件输入流。从页使图片以JPEG编码后存储在指定文件夹中。这种方式与组件上传相比似乎笨拙而又不能对文件属性进行操作,但的确可以轻松实现图片的上传。
 
uploadimage1.jsp实现构建一个表单,提交用于为图片重命名的参数,以及图片文件。 <%...@ page contentType="text/html; charset=gbk" %>
<%...@ page language="java" %>
<HTML>  
<HEAD>  
<TITLE>DATABASE</TITLE>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
</HEAD>  
<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>  

uploadimage1.jsp实现获取用户提交参数为要存储的图片命名,以字符的形式获取上传的图片,进一步转化为输入流。


<%...@ 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");
// ServletOutputStream ot=response.getOutputStream(); //也可以直接输出显示
  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());
}
%>  

你可能感兴趣的:(java,html,jsp,应用服务器,sun)