各位高手们,请帮我看看这个程序出什么错了,谢谢了!<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html>
  <head>
   <title>Image File</title>
   <meta http-equiv="Content-Type" content="text/html;charset="gb2312"/>  </head>
  
  <body>
    <form action="testimage.jsp" method=post>
    <input type="text" name="content"/><br/>
    <input type="file" name="image"/><br/>
    <input type="submit" name="submit" value="提交"/>
    </form>
  </body>
</html>向数据库插入图片:(testimage.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.text.*" %>
<%@ page import="java.io.*" %>
<%@page import="javax.imageio.stream.FileImageInputStream"%>
<html>
  <head>
   <%
   Class.forName("com.mysql.jdbc.Driver");
   String url="jdbc:mysql://localhost:3306/jspdata";
   String userName="root";
   String password="123456";
   Connection connection=DriverManager.getConnection(url,userName,password);
   String content=request.getParameter("content");
   String filename=request.getParameter("image");
   FileInputStream str=new FileInputStream(filename);
   String sql="insert into image(id,content,image) values(1,?,?)";
   PreparedStatement pstmt=connection.prepareStatement(sql);
   pstmt.setString(1,content);
   pstmt.setBinaryStream(2,str,str.available());
   pstmt.execute();
   out.print("Success");
   
    %>
  </head>
  
  <body>
   
  </body>
</html>
但是运行结果中页面显示:系统找不到指定的文件 
这是为什么?应怎么改啊

解决方案 »

  1.   

    向数据库插入图片:这段在后台做吧。你jsp跳到jsp?你第一个jsp到一个 Servlet,第二个jsp的内容放到Servlet里面做。
      

  2.   

    我是刚刚学jsp,所有不会用servlet
      

  3.   


    明白,理解,先去做个Servlet的例子,再把你上面的例子,用jsp+Servlet做一遍,就OK,有问题再提问。
      

  4.   

    建议先学习servlet,在使用servlet和jsp一起实际练习。
      

  5.   

    最好借助Servlet,不要把代码都堆积在页面中,不符合规范!
    给你个示例,我测试过了的,你可以参考参考,网址:http://u.115.com/file/f0d2a725c4
    还有推荐你本书,可能是叫数据库的高级操作,你可以上网看看,我觉得还不错的!
      

  6.   

    你插入图片其实=上传+存入数据库,首先“<form action="testimage.jsp" method=post>"这一句似乎少了点什么,因为form不应该是普通的form,其次服务端将得到的上传图片存入数据库可以用Blob字段
    希望能帮到你。
      

  7.   

    这是字符编码的问题!!!!!!
    你在 Class.forName("com.mysql.jdbc.Driver");这段代码前加上
    这两段
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
    如果还有问题找我?
      

  8.   

    testimage.jsp这一句执行时,是在服务器端读取图片文件,虽然用的是客户端提交的文件名。你要先研究文件上传技术。
      

  9.   

     <form action="testimage.jsp" method=post enctype="multipart/form-data">
      <input type="text" name="content"/><br/>
      <input type="file" name="image"/><br/>
      <input type="submit" name="submit" value="提交"/>文件上传需要在form加入 enctype="multipart/form-data"
      

  10.   

    http://blog.csdn.net/closewbq/archive/2010/07/24/5761888.aspx
      

  11.   

    #12楼,#8楼所说的我都做了,谢谢各位给我的帮助,虽然找不到文件的问题解决了,但是程序还是有问题,错误提示如下:
    org.apache.jasper.JasperException: Exception in JSP: /image_test/testimage.jsp:2118:    Connection connection=DriverManager.getConnection(url,userName,password);
    19:    String content=request.getParameter("content");
    20:    String filename=request.getParameter("image");
    21:    FileInputStream str=new FileInputStream(filename);
    22:    String sql="insert into image(id,content,image) values(1,?,?)";
    23:    PreparedStatement pstmt=connection.prepareStatement(sql);
    24:    pstmt.setString(1,content);
    这应该怎么改啊?
      

  12.   

    把filename打印一下,看是否得到了filename
    System.out.println(filename);