这是一个表单上传项addBook.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'addBook.jsp' starting page</title>
</head>
<body>
<form action="<%=basePath%>adminAddBook" method="post" >
书籍编号:<input name="isbn" type="text"/><br>
书 名:<input name="title" type="text"/><br>
版 本:<input name="editionNumber" type="text"/><br>
版 权:<input name="copyright" type="text"/><br>
出版商ID:<input type="text" name="publisherID"><br>
封面图像:<input name="imageFile" type="text"/><br>
文件上传:<input name="image" type="file"/><br>
价 格:<input name="price" type="text" /><br>
<input name="ok" type="submit"value="提交"> <input name="ok" type="reset"value="重置">
</form>
</body>
</html>
这是一个servlet的文件处理数据
package org.ibm.ebook.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.ibm.ebook.conn.DBConnection;
import org.ibm.ebook.dto.BookDTO;
import org.ibm.ebook.service.BooksTitlesService;
import java.io.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
public class adminAddBook extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//接取编码格式
request.setCharacterEncoding("GBK");
//在网页上显示的编码格式
response.setContentType("text/html;charset=GBK");
//获取表单数据
String isbn = request.getParameter("isbn");
String title = request.getParameter("title");
//类型转换
String editionNumber = request.getParameter("editionNumber");
int enu = Integer.parseInt(editionNumber);
String copyright = request.getParameter("copyright");
String publisherID = request.getParameter("publisherID");
int pid = Integer.parseInt(publisherID);
String imageFile = request.getParameter("imageFile");
//System.out.println(imageFile);
//转换为double型数据
double price = Double.parseDouble(request.getParameter("price"));
BooksTitlesService bts=new BooksTitlesService();
//连接数据库
Connection con = new DBConnection().getConnection();
//封装
BookDTO bdto=new BookDTO();
bdto.setIsbn(isbn);
bdto.setTitle(title);
bdto.setEditionNumber(enu);
bdto.setCopyright(copyright);
bdto.setPublisherID(pid);
bdto.setImageFile(imageFile+".jpg");
bdto.setPrice(price);
//从下面开始就是图片上传了
String ima=request.getParameter("image");
try{
//titles是图片名字做一次转换,字节型,因为上面已经转过,实际上没必要了
title=new String(title.getBytes("GBK"));
//获取地址当前地址如果在aa文件中 就是aa
String path=request.getContextPath();
//System.out.println(path);
//输出流获取表单的命名+.jpg进行图片上传
FileOutputStream ot = new FileOutputStre("D://Administrator//workspace"+path+"//WebRoot//images//"+title+".jpg");
//System.out.println(ot);
// 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();
PrintWriter out = response.getWriter();
out.print("JSP上传图片成功!<BR>");
//加载上传成功的图片
out.print("<IMG width=200 height=200 src='D:/Administrator/workspace/ebooks/WebRoot/images/"+title+".jpg' />");
}
catch(Exception e){
System.out.print(e.toString());
}
boolean flag=bts.insterTitles(bdto, con);
if(flag){
System.out.print("添加成功");
}
else{
System.out.print("添加失败");
}
DBConnection.close(null,null,null,null,con);
}
}
用的时候,要以个包是com.jspsmart.upload (没有这个你就不能运行)