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

qq_26575879 2015-04-05 06:11:40
<%@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>
...全文
410 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26575879 2015-04-09
  • 打赏
  • 举报
回复
null 四月 09, 2015 10:23:03 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [jsp] in context with path [/one] threw exception [An exception occurred processing JSP page /testimage.jsp at line 19 16: String password="123"; 17: String filename=request.getParameter("image"); 18: System.out.println(filename); 19: File file=new File(filename); 20: file.createNewFile(); 21: if(!file.exists()||!file.isFile())//判断文件是否存在 22: {System.out.println("sdadas"); Stacktrace:] with root cause java.lang.NullPointerException at java.io.File.<init>(File.java:277) at org.apache.jsp.testimage_jsp._jspService(testimage_jsp.java:85) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
z983191625 2015-04-09
  • 打赏
  • 举报
回复
new File()只是创建了一个文件的对象,还没有真正生成文件。加上这句试试file.createNewFile();
maxldwy 2015-04-07
  • 打赏
  • 举报
回复
<input type="file" name="file"> name是不是写错了 要跟类里的字段名一样
番茄鲨鱼面 2015-04-07
  • 打赏
  • 举报
回复
1.form的enctype=“multipart/form-data”。 2.把路径打印出来看看是真实的绝对路径还是一个虚假的路径(记得有的浏览器是c:\fakepath\文件名)。 建议:把文件上传到服务器上,然后把文件在服务器的路径存到库中。文件上传可以使用一些插件,几行代码就搞定。
scmod 2015-04-06
  • 打赏
  • 举报
回复
enctype..发错了还不能修改自己发的帖子...
scmod 2015-04-06
  • 打赏
  • 举报
回复
request.getParameter("image");这是哪里来的... 提交的表单?表单的话那个entype要=multipart/form-data,别的我就不知道了~
qq_26575879 2015-04-06
  • 打赏
  • 举报
回复
判断出来file.exis为假,但是为什么呢。我是通过浏览文件获得的路径
枯枝 2015-04-05
  • 打赏
  • 举报
回复
应该是路径不对; 解决方案:将路径filename 截出来,看看这个路径对不对; 建议: 在File file=new File(filename);后面加上如下判断语句: if(!file.exists()||!file.isFile())//判断文件是否存在 { return; }

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧