当前位置: 代码迷 >> Java Web开发 >> 小白求教,jsp上传图片到mysql揭示java.io.FileNotFoundException:系统找不到指定文件
  详细解决方案

小白求教,jsp上传图片到mysql揭示java.io.FileNotFoundException:系统找不到指定文件

热度:851   发布时间:2016-04-14 18:56:59.0
小白求教,jsp上传图片到mysql提示java.io.FileNotFoundException:系统找不到指定文件
<%@page contentType="text/html; charset=gb2312"%>
<%@page language="java" import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.text.*"%>
<%@page import="java.nio.*"%>
<html>
<head><title>imagetest</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
<%
 Class.forName("com.mysql.jdbc.Driver").newInstance();
 String url="jdbc:mysql://localhost/bin_db";
 String user="root";
 String password="123";
 String filename=request.getParameter("image");
 File file=new File(filename);
  
 try{
  
  FileInputStream fin=new FileInputStream(file);//用打印语句测试程序到这里就执行不下去了
  ByteBuffer nbf=ByteBuffer.allocate((int)file.length());
   byte[] array=new byte[1024];
   int offset=0,length=0;
    
   while((length=fin.read(array))>0){
     if(length!=1024)
     nbf.put(array,0,length);
     else
     nbf.put(array);
     offset+=length;
     }
     byte[] content=nbf.array();
     
     Connection con=DriverManager.getConnection(url,user,password);
     Statement stmt=con.createStatement(
     ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_UPDATABLE);
     String sqlstr="select * from bindata where filename='01'";
     ResultSet rs=stmt.executeQuery(sqlstr);
     if(rs.next()){
      rs.updateBytes(2,content);
      rs.updateRow();
     }else{
      rs.moveToInsertRow();
      rs.updateString(1,"01");
      rs.updateBytes(2,content);
      rs.insertRow();
     }
   rs.close();
   fin.close();
   System.out.println("保存图片成功");
   }catch(FileNotFoundException e){
      e.printStackTrace();
   }catch(IOException e){
   e.printStackTrace();}
 
 
 %>
</body>

</html>
------解决思路----------------------
应该是路径不对;
解决方案:将路径filename 截出来,看看这个路径对不对;
建议:
在File file=new File(filename);后面加上如下判断语句:
if(!file.exists()
------解决思路----------------------
!file.isFile())//判断文件是否存在
{
return;
}


------解决思路----------------------
request.getParameter("image");这是哪里来的...
提交的表单?表单的话那个entype要=multipart/form-data,别的我就不知道了~
------解决思路----------------------
enctype..发错了还不能修改自己发的帖子...
------解决思路----------------------
1.form的enctype=“multipart/form-data”。
2.把路径打印出来看看是真实的绝对路径还是一个虚假的路径(记得有的浏览器是c:\fakepath\文件名)。
建议:把文件上传到服务器上,然后把文件在服务器的路径存到库中。文件上传可以使用一些插件,几行代码就搞定。
------解决思路----------------------
<input type="file" name="file"> name是不是写错了
要跟类里的字段名一样
------解决思路----------------------
new File()只是创建了一个文件的对象,还没有真正生成文件。加上这句试试file.createNewFile();
  相关解决方案