欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP中实现图片的无组件上传 JSPJava应用服务器SUNHTML 

程序员文章站 2022-07-14 15:27:11
...
用户通过网页像提交参数一样向服务器上传图片,这在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());
}
%>