2013-08-19 33 views
0

我创建了下面的程序,当我按下提交按钮时,程序正在抛出FileNotFound异常。由于JSP页面无法找到完整的映像路径,问题即将到来。我调试了JSP程序,发现HTML表单仅传递没有路径的图像名称,这就是为什么问题即将到来。任何人都可以解决此问题。无法将图像存储到数据库

################## SQL Query ###################################### 

    CREATE TABLE IMAGEMAIN(ID INTEGER,IMAGE BLOB) ; 

################## HTML Form ###################### 

    <form name="frm" method="post" action="index.jsp"> 
    <input type="text" name="hint"> 
    <input type="file" name="user_file"> 
    <input type="submit"> 

################### JSP PAGE ######################## 

try 
{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    System.out.println("Connection loaded"); 
    Connection con = DriverManager.getConnection("jdbc:odbc:project","image","image"); 
    System.out.println("Connection created"); 
    String ll=request.getParameter("user_file"); 
    String lo=request.getParameter("hint"); 
    File imgfile = new File(ll); 

    FileInputStream fin = new FileInputStream(imgfile); 

    PreparedStatement pre = con.prepareStatement("insert into IMAGEMAIN (id,image) values(?,?)"); 
    pre.setString(1,lo); 
    pre.setBinaryStream(2,fin,(int)imgfile.length()); 
    pre.executeUpdate(); 
    pre.close(); 
} 

catch(Exception E) 
{ 
    out.println("the eror is "+ E); 
} 
+0

快速谷歌,这里是你的解决方案:http://stackoverflow.com/questions/1142475/jsp-file-upload-with-apache-commons –

回答

0

FileInputStream(String)您使用构造函数需要一个文件名,它不会因为工作的HTTP上传的文件没有这样的作品像一个文件名 - 而不是你直接操作流。

根据此SO QA(jsp file upload issues),JSP不提供处理多部分HTTP请求的内置支持,因此如果不使用其他Java包(如Apache Commons FileUpload),则无法处理上载的文件。

所以我建议你安装FileUpload,然后用它来访问上传的文件。我不熟悉它,但这里有文档:http://commons.apache.org/proper/commons-fileupload/using.html

+0

谢谢戴!我知道我需要包含Apache Commons FileUpload,但我没有得到如何在我的代码中包含/编写此包。请协助 – vishal

+0

@vishal我无法真正帮助你 - 听起来你是Java的初学者。在继续使用JSP/Servlet之前,我建议你阅读关于Java的一些文章和教程。 – Dai