淺談如何實現JSP上傳圖片無組件化
作者:329087553
用戶通過網頁像提交參數一樣向服務器上傳圖片,這在JSP應用中很常用,這里將用一個簡單的方法,通過以字符串的形式獲取用戶提交的圖片,再把圖片的字符形式轉換成文件輸入流。
從JSP頁使圖片以JPEG編碼后存儲在指定文件夾中。這種JSP上傳圖片方式與組件上傳相比似乎笨拙而又不能對文件屬性進行操作,但的確可以輕松實現JSP上傳圖片的功能。
uploadimage1.jsp實現構建一個表單,提交用于為圖片重命名的參數,以及圖片文件。
- <%...@ page contentType="text/html; charset=gbk" %>
- <%...@ page language="java" %>
- <HTML>
- <HEAD>
- <TITLE>DATABASE< SPAN>TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- < SPAN>HEAD>
- <FORM METHOD=POST ACTION="uploadimage2.jsp">
- 人物:<INPUT TYPE="text" NAME="name"><BR>
- 圖片:<INPUT TYPE="file" NAME="image"><BR>
- <INPUT TYPE="submit" value="提交">
- < SPAN>FORM>
- < SPAN>BODY>
- < SPAN>HTML>
uploadimage1.jsp實現獲取用戶提交參數為要存儲的圖片命名,以字符的形式獲取上傳的圖片,進一步轉化為輸入流,最終完成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("JSP上傳圖片成功!<BR>");
- //加載上傳成功的圖片
- out.print("<IMG width=200 height=200 src='"+name+".jpg' />");
- }
- catch(Exception e)
- {
- System.out.print(e.toString());
- }
- %>
實現JSP上傳圖片無組件化就為大家介紹到這里。
【編輯推薦】
責任編輯:彭凡
來源:
51CTO論壇