CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

图片上传的怪问题(谢谢帮忙)

楼主yukugua(与均)2005-04-02 22:20:55 在 Java / Web 开发 提问

最近做图片上传时,老不能成功  
  我用的是JBUILD+SQL   SERVER2000  
  我用了网上说的标准方法(如下::)  
  第一个JSP页面:  
   
  <%@   page   contentType="text/html;charset=gb2312"   %>  
  <html><head><title>添加图片</title></head>  
  <body>  
  添加图片<br/>  
  <form   method="post"   action="insertNews.jsp"   >  
  图像ID:<input   name="id"   size="10">  
  <br/>  
  选择图像:<input   type="file"   name="image">  
  <br/>  
  <input   type="submit"   value="上传"   name="submit"   size="25">  
  <input   type="reset"   value="清除"   name="clear"   size="25">  
  <br/>  
  </form>  
  </body></html>  
   
  第二个JSP页:  
  <%@   page   language="java"%>  
  <%@   page   contentType="text/html;charset=gb2312"   %>  
  <%@   page   import="java.util.*"   %>  
  <%@   page   import="java.sql.*"%>  
  <%@   page   import="java.text.*"%>  
  <%@   page   import="java.io.*"%>  
   
  <%  
  String   l="jdbc:odbc:yu'learning";  
   
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    Connection       con=DriverManager.getConnection(l,"","");  
  //插入数据库  
  String   sql="insert   into   image   values(?,?,?)";  
  //获取传值ID  
  String   id=request.getParameter("id");  
  %>  
  <%=id   %>  
  <%//获取image的路径  
  String   kk=request.getParameter("image");  
  //转换成file格式  
  File   filename=new   File(kk);  
   
  //将文件的长度读出,并转换成Long型  
  long   l1=filename.length();  
  int   l2=(int)l1;  
   
  //以流的格式赋值  
  FileInputStream   fis=new   FileInputStream(filename);  
   
  PreparedStatement   ps   =con.prepareStatement(sql);  
  ps.setString(1,id);  
  ps.setString(2,filename.getName());  
  ps.setBinaryStream(3,fis,l2);  
  //ps.setBinaryStream(3,fis,fis.available());  
  ps.executeUpdate();  
  //ps.execute();  
  ps.close();  
  fis.close();  
  out.println("ok!!!");  
  %>  
   
  但始终失败!!!!!!!!!!!!!!!出错提示如下:  
  type   Exception   reportmessage   description   The   server   encountered   an   internal   error   ()   that   prevented   it   from   fulfilling   this   request.exception   org.apache.jasper.JasperException  
    at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)  
    at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
    at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
    at   javax.servlet.http.HttpServlet.service(HttpServlet.java  
  ^^^^  
  ^^^  
  ^^^^  
   
  而且我还发现一个问题,当我把第二个JSP页面改成下面这样的时候:  
  <%@   page   language="java"%>  
  <%@   page   contentType="text/html;charset=gb2312"   %>  
  <%@   page   import="java.util.*"   %>  
  <%@   page   import="java.sql.*"%>  
  <%@   page   import="java.text.*"%>  
  <%@   page   import="java.io.*"%>  
   
  <%  
  String   l="jdbc:odbc:yu'learning";  
   
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
    Connection       con=DriverManager.getConnection(l,"","");  
  //插入数据库  
  String   sql="insert   into   image   values(?,?,?)";  
  //获取传值ID  
  String   id=request.getParameter("id");  
  %>  
  <%=id   %>  
  <%//获取image的路径  
  String   kk=request.getParameter("image");  
  out.println("ok!!!");  
  %>  
   
  "id"接受到的值老显示为null  
  这又是为什么呢?  
   
  请高人帮忙啊!!!!!!!!!!  
  问题点数:20、回复次数:9Top

1 楼InWang(振兴中华)回复于 2005-04-03 09:11:33 得分 0

第一个页面加上enctype="multipart/form-data"到<form   method="post"   action="insertNews.jsp"   >  
  里面,即<form   method="post"   action="insertNews.jsp"   enctype="multipart/form-data">  
  Top

2 楼java_jing(梦鸟)回复于 2005-04-03 10:50:16 得分 0

用组件   ,很多的Top

3 楼ddroyce()回复于 2005-04-03 11:09:32 得分 0

to:yukugua   (与均)    
  我和你写的一样  
  怎么在ps.executeUpdate();一步时  
  报错:java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC][SQLServer]第   1   行:   ')'   附近有语法错误。  
  Top

4 楼jianghuxing(回头看看原来我一无所有)回复于 2005-04-03 11:31:31 得分 0

:<input   name="id"   size="10">  
  ????  
  改成:  
  :<input   name="id"   size="10"/>试试,格式不对呀,  
  不家最好不要手工定义ID,自动生成一个ID   那样好些,不会重  
  Top

5 楼xtuyaowu(tzjz)回复于 2005-04-03 12:05:23 得分 0

upTop

6 楼yukugua(与均)回复于 2005-04-03 16:34:33 得分 0

我   的数据库表三个字段image(id(系统可自动生成)  
                                                          user_id(not   null)  
                                                        image   )  
   
  我如果加上enctype="multipart/form-data",第一个JSP中连输入id的文本都不显示了,WHY?  
  问题也没解决啊!  
   
  解决了,要多少分都行啊,各位帮帮忙啊Top

7 楼nini_killer(杀手)回复于 2005-04-03 16:38:08 得分 0

不欣赏你在JSP页面中写如此多的代码??  
  MVC去看一下吧!!  
  Top

8 楼InWang(振兴中华)回复于 2005-04-04 19:53:37 得分 20

我一般是在数据库中存放一条路径,要读取的时候用它去访问。  
   
  加上enctype="multipart/form-data"后,表单递交的各个参数不能在用普通的getParameter,下面是个简单的例子:  
  SmartUpload   su   =   new   SmartUpload();  
  su.initialize(pageContext);          
  su.upload();          
  Request   requestSu   =   su.getRequest();  
   
  String   id=requestSu.getParameter("id");  
   
  Top

9 楼javafaq2004(I will survive)回复于 2005-04-05 09:36:36 得分 0

 
  multipart/form-data  
   
  不能和普通数据一起传。  
   
  在服务器端也不能一起接收,要分开来。  
  Top

相关问题

  • 图片上传
  • 上传图片?
  • 图片上传
  • 上传图片
  • ASP上传图片
  • 上传图片,急!!!
  • freetextbox上传图片
  • 上传图片时,常出现这种怪现象该怎么办?
  • 上传图片的问题
  • 上传图片的问题?

关键词

  • 图片

得分解答快速导航

  • 帖主:yukugua
  • InWang

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo