求大神指导~~
//对象创建
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);
}
为什么我添加的时候出现添加异常????