<%@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();