非常紧急!JSP上传图片到数据库中,action,jsp分开写

解决方案 »

  1.   


    import java.io.*; 
        import java.sql.*; 
        public class PutImg { 
        public void putimg() { 
        try { 
        Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
        String url = "JDBC:mysql://localhost/img?user=root&password=root&useUnicode=true&characterEncoding=gbk"; 
        Connection conn = DriverManager.getConnection(url); 
        Statement stmt = conn.createStatement(); 
        //stmt.execute("insert into imgt (id) values (5)"); 
        stmt.close(); 
        PreparedStatement pstmt = null; 
        String sql = ""; 
        File file = new File("c:/XXX"); 
        InputStream photoStream = new FileInputStream(file); 
        //sql = " UPDATE imgt SET img = ? "; 
        sql = "INSERT INTO imgtable (img) VALUES (?)"; 
        pstmt = conn.prepareStatement(sql); 
        pstmt.setBinaryStream(1, photoStream, (int) file.length()); 
        pstmt.executeUpdate(); 
        pstmt.close(); 
        conn.close(); 
        } catch (Exception e) { 
        e.printStackTrace(); 
        } 
        } 
        public static void main(String args[]){ 
        PutImg pi=new PutImg(); 
        pi.putimg(); 
        } 
        } 
      

  2.   

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    throws java.lang.Exception { XzqlActionForm xzqlActionForm = (XzqlActionForm)form;
    Xzql xzql = new Xzql();
    XzqlDao xzqlDao = new XzqlDao();
    CharConvert charConvert = new CharConvert();

    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    request.setCharacterEncoding("utf-8");
    PrintWriter out = response.getWriter();
    String filename = request.getParameter("outflowimg");

    File file = new File(filename);
            FileInputStream fis = new FileInputStream(file);
            int len = (int)file.length();
        

    xzqlDao.insertDocument(xzql,fis,len);

    ArrayList arrayList = (ArrayList)xzqlDao.getXzqlList(); 
    request.setAttribute("arrayList", arrayList);

    return mapping.findForward("xzqlList");

    }String filename = request.getParameter("outflowimg"); 
    从页面中获取的input 框的值,filename怎么为空啊
      

  3.   

    <form method="post" action="Upload" ENCTYPE="multipart/form-data"
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    PrintWriter out=response.getWriter(); 
    request.setCharacterEncoding("GBK"); 
    response.setContentType("text/html; charset=GBK"); 
    //设置上传文件的名字 
    String uploadPath ="D:\\JavaSource\\Task\\uploadDir\\"; // 上传文件的目录 
    String  tempPath = "D:\\JavaSource\\Task"; // 临时文件目录 
    HttpSession ses=request.getSession(); 
    try { 
            FileItemFactory factory = new DiskFileItemFactory(); 
            // 设定缓存大小 
            ((DiskFileItemFactory) factory).setSizeThreshold(4096); 
        // 设定暂存Directory 
            ((DiskFileItemFactory) factory).setRepository(new File(tempPath));         ServletFileUpload upload = new ServletFileUpload(factory); 
        // 设置最大文件尺寸,这里是4MB 
            upload.setSizeMax(4194304); 
            // 得到所有的文件: 
          //解析用户请求的参数,取出文件上传信息 
            List fileItems = upload.parseRequest(request); 
            Iterator i = fileItems.iterator(); 
            // 依次处理每一个文件: 
          if(i.hasNext()) { 
                FileItem fileItem  = (FileItem)i.next(); 
                String fileName = fileItem.getName();  
                System.out.println(fileName); 
                //获取上传文件名,接下来处理一下,取出 文件名.扩展名 即可 
                fileName = fileName.substring(fileName.lastIndexOf("\\")+1); 
              
                File uploadDir = new File(uploadPath,fileName); //构造上传文件存放位置 
                fileItem.write(uploadDir); 
                
    // 文件路径存入数据库            
                String sql_filename=uploadPath+fileName; 
                String taskid=(String)ses.getAttribute("add_taskid"); 
                System.out.println("任务id:"+taskid); 
                FileUpload_down.add_file(sql_filename, taskid); 
                ses.removeAttribute("add_taskid"); 
                // 获得文件名,这个文件名包括路径: 
                      
            } 
            response.sendRedirect("welcom.jsp"); 
              } 
        catch(Exception e) { 
            // 可以跳转出错页面 
        e.printStackTrace(); 
        String error="上传失败!"; 
    ses.setAttribute("error", error); 
    response.sendRedirect("error.jsp"); 
            } } } 
      

  4.   

    0问题如解决,请及时结贴!Regards
      

  5.   

    麻烦你可以给我发份吗?谢谢, 我用的是struts 1.3