文件上传(仅供个人参考)

来源:互联网 发布:汽车轮毂数据 编辑:程序博客网 时间:2024/05/19 23:12
(1)DAO
package com.zzu.struts.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.zzu.struts.dbc.DBConnection;
import com.zzu.struts.model.Info;
public class InfoDao {
 Connection con=null;
 PreparedStatement ps = null;
 DBConnection dbc = new DBConnection();
 public InfoDao(){
  con = dbc.getCon();
 }
 public boolean addImages(Info info){
  boolean f = false;
  String sql ="insert into info values(?)";
  try {
   ps = con.prepareStatement(sql);
   ps.setString(1, info.getImages());
   int i = ps.executeUpdate();
   if(i>0){
    f = true;
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return f;
 }
 public List showImages(){
  List list = new ArrayList();
  ResultSet rs = null;
  Info info = null;
  String sql = "select * from info";
  try {
   ps = con.prepareStatement(sql);
   rs = ps.executeQuery();
   while(rs.next()){
    info = new Info();
    info.setImages(rs.getString("images"));
    list.add(info);
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return list;
 }
 public static void main(String[] args) {
 /* Info info = new Info();
 // i.setImages("a");
 // System.out.println(new InfoDao().addImages(i));
  List list = new InfoDao().showImages();
  System.out.println(list.size());
  for(int i = 0;i<list.size();i++){
   info = (Info)list.get(i);
   System.out.println(info.getImages());
  }*/
 }
}
Action处理:
public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException, IOException {
  UpForm upForm = (UpForm) form;
  FormFile formFile = upForm.getWenjian();
  PrintWriter out = null;
 response.setCharacterEncoding("GBK");
 out = response.getWriter();
 String path = this.getServlet().getServletContext().getRealPath("/uploads");
 InputStream in = formFile.getInputStream();
 String filePath =path + "//"+ formFile.getFileName();
 FileOutputStream fout = new FileOutputStream(filePath);
 byte buffer[] = new byte[8192];
 int count = 0;
 InfoDao id = new InfoDao();
 Info info = new Info();
  info.setImages(filePath);
 boolean flag = id.addImages(info);  
  
  while ((count = in.read(buffer)) > 0) {
   fout.write(buffer, 0, count);
   if(flag ==true){
    out.println("文件上传..........");
   }
  }
  System.out.println("文件大小" + count);
  fout.close();
  return null;
 }