用户通过网页像提交参数一样向服务器上传图片,这在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());
}
%>
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());
}
%>