求大神指导~~

steffun998 2011-06-21 12:57:26
//对象创建
shopmodel.GoodsBean goods=new shopmodel.GoodsBean();
ToolBean.DB db=new ToolBean.DB();
String info="";
String forward="";
String ext="";
String url="upload/";
String picurl="/uploadimage";
FileInputStream imagefile=null;
PreparedStatement pstmt=null;
Connection conn=null;

//处理上传的图片文件
SmartUpload su=new SmartUpload(); //创建新的上传对象
long maxsize=200*1024; //设置每个上传文件的大小为200KB
try{
su.initialize(this.getServletConfig(),request,response);//初始化

su.setMaxFileSize(maxsize); //限制上传文件的大小
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");//设定禁止上传的文件。禁止上传罗列的那些及没有扩展名的文件。
su.setAllowedFilesList("jpg,JPG,gif,GIF"); //设定允许上传的格式
su.upload(); //上传文件
//将上传文件保存到指定目录
su.save(picurl,SmartUpload.SAVE_VIRTUAL);

//获取上传的文件,因为只上传了一个文件,所以可直接获取
com.jspsmart.upload.File myfile=su.getFiles().getFile(0);
if(!myfile.isMissing()){
String filename=myfile.getFilePathName(); //获取完整的带路径的文件名
imagefile=new FileInputStream(filename);
//获取用户提交的其他数据
Request req=su.getRequest();
String cid=req.getParameter("cid");
String cname=req.getParameter("cname");
String number=req.getParameter("cnumber");
String price=req.getParameter("cprice");
String cintro=req.getParameter("cintro");
//转换数量和价格的格式
int cnumber=Integer.parseInt(number);
float cprice=Float.parseFloat(price);

//将图片存到upload文件夹中,并重命名
ext=myfile.getFileExt();
Calendar cal=Calendar.getInstance();
String newfilename=String.valueOf(cal.getTimeInMillis());
//String saveurl=request.getRealPath("/")+url;
//saveurl+=newfilename+"."+ext;

//设置存到数据库中的路径
String cimage=url+newfilename+"."+ext;



// java.io.File iofile = new java.io.File(filename);
// java.io.FileInputStream fis = new java.io.FileInputStream(iofile);
//写入到GoodsBean中
// goods.setCid(cid);
// goods.setCname(cname);
// goods.setCnumber(cnumber);
// goods.setCprice(cprice);
// goods.setCintro(cintro);
// goods.setCimage(cimage);

int cmark=0;

String sql="insert into goods(cid,cname,cnumber,cprice,cintro,cimage,cpic) values (?,?,?,?,?,?,?)";

conn=db.createConn();
conn.setAutoCommit(true);
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,cid);
pstmt.setString(2,cname);
pstmt.setInt(3,cnumber);
pstmt.setFloat(4,cprice);
pstmt.setString(5,cintro);
pstmt.setString(6,cimage);
//pstmt.setBinaryStream(parameterIndex, x, length)
//pstmt.setBinaryStream(6,fis,419);
pstmt.setBinaryStream(7,imagefile,imagefile.available());
//cmark=pstmt.execute();
cmark=pstmt.executeUpdate();
if(cmark==1){
//myfile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL); //su.SAVE_PHYSICAL
info="添加成功!";
//conn.commit();
forward="c_manager.jsp";
}else{
info="添加失败!";
forward="c_add.jsp";
}

}else{
info="请选择要上传的文件!";
forward="c_add.jsp";
}

}catch(Exception e){
e.printStackTrace();
info="添加异常!";
forward="c_add.jsp";
}finally{
try {pstmt.close();}catch(Exception e){}
try {imagefile.close();}catch(Exception e){}
try {conn.close();}catch(Exception e){}
}


request.setAttribute("info",info);
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request,response);

}


为什么我添加的时候出现添加异常????
...全文
95 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
acertang 2011-06-21
  • 打赏
  • 举报
回复
晕了,没装JDK,tomcat 你是怎么进入调试的
steffun998 2011-06-21
  • 打赏
  • 举报
回复
那我先安装JDK和TOMCAT·~~~谢谢哈~~~~
steffun998 2011-06-21
  • 打赏
  • 举报
回复
try catch没有这么长的???
我现在是程序没进入try而是直接进入了catch
是不是我在try中写错了什么~~~???
JavaAlpha 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 steffun998 的回复:]
还是不行~~~求指导·~~~我用的的是myeclipse 8.5+sql5.5+mysql front~~~~需要jdk和tomcat么????
[/Quote]

java项目 jdk是必须的。
如果是web项目 tomcat也是必须的。
JavaAlpha 2011-06-21
  • 打赏
  • 举报
回复
try{
su.initialize(this.getServletConfig(),request,response);//初始化

........................

}catch(Exception e){
e.printStackTrace();
info="添加异常!";


楼主代码没有这样写的啊。
一个try catch 这么长。
steffun998 2011-06-21
  • 打赏
  • 举报
回复
还是不行~~~求指导·~~~我用的的是myeclipse 8.5+sql5.5+mysql front~~~~需要jdk和tomcat么????
steffun998 2011-06-21
  • 打赏
  • 举报
回复
我再试试吧·~~谢谢啦
acertang 2011-06-21
  • 打赏
  • 举报
回复
那也有e.printStackTrace();输出吧,你都没贴出来。

没进try,有可能是你写完程序后,程序还没编译,最好你手动再clean一下.
steffun998 2011-06-21
  • 打赏
  • 举报
回复
6楼~~你的方法我试了·~~还是不行·~~·继续求指导
steffun998 2011-06-21
  • 打赏
  • 举报
回复
2楼不是啊·~~
catch(Exception e){
e.printStackTrace();
info="添加异常!";
forward="c_add.jsp";
}
添加异常是这里出来的啊·~·
我是想问为什么没执行try
直接进入了catch·~~~求指导
acertang 2011-06-21
  • 打赏
  • 举报
回复
catch(Exception e){
e.printStackTrace();
info="添加异常!";
forward="c_add.jsp";
}
都有e.printStackTrace();,肯定有打印
acertang 2011-06-21
  • 打赏
  • 举报
回复
改成:pstmt.setBinaryStream(7,imagefile,(int)imagefile.length());
原来 2011-06-21
  • 打赏
  • 举报
回复
是异常中打印的,还是走了else{} 打印出来的,如果是异常,就看异常信息了
小笨熊 2011-06-21
  • 打赏
  • 举报
回复
恩,都不回复,是谁不浪费我们的时间哦,贴log上来,不然怎么看啊
JavaAlpha 2011-06-21
  • 打赏
  • 举报
回复
估计 lz发完帖子就没看了。
xiang1115 2011-06-21
  • 打赏
  • 举报
回复
异常的错误信息是什么啊。把错误提示贴出来看看啊
JavaAlpha 2011-06-21
  • 打赏
  • 举报
回复
把你的异常信息贴出来看下。

81,092

社区成员

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

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