貌似 ENCTYPE="multipart/form-data" 为这种类型的时候,在目标页面是不能通过request.getParameter取到参数的.这段代码问题多多呀.简单列举几点:
//判断是否有附件上传 
com.jspsmart.upload.File file = su.getFiles().getFile(0); //如果都没有文件上传,你还要去取它的第0个对象就不会报错?
if (!file.isMissing()) //如果都没有文件上传?它还会返回一个对象?

String sPic=file.getFileName(); 
//将附件以 当前时间+附件扩展名 作为文件名保存 
java.text.SimpleDateFormat dateFormatter = new java.text.SimpleDateFormat("yyyyMMddHHmmss"); 
String sNowTime = dateFormatter.format(new java.util.Date()); 
图标 = sNowTime+"."+ file.getFileExt(); 
file.saveAs("/uploadfiles/"+图标);//web下建一个uploadfices文件夹 

//验证表单数据 
if(ID.equals("")) //如上所说,request.getParameter为空..,ID岂会不为null?引用一个指向null的对象岂不出现NullPoineterException?

out.print(" <script>alert('内容不能为空');history.back(); </script>"); 

if(名称.equals("")) //同上,//另:虽然JAVA中支持中文做变量名..不过这样写好吗?

out.print(" <script>alert('对不起,名称不能为空');history.back(); </script>"); 

//执行添加操作 //stmt是哪里来的?stmt.executeUpdate("INSERT INTO scott.商品信息(ID,名称,作者,分类,包装,简介,说明,使用,图标,定价,售价,标记) VALUES(scott.ID.nextval,'" + 名称  + "','" + 作者  + "','" + 分类  + "','" + 包装  + "','" + 简介  + "','" + 说明  + "','" + 使用  + "','" + 图标  + "','" + 定价  + "','" + 售价  + "','" + 标记  + "')"); 
%> 

解决方案 »

  1.   

    谢谢1楼的回复,我是一个新手。我主要想做一个后台管理实现更新文件的代码,用jspSmartUpload来作上传的,你看有必要吗,如果不用的话删了那段应该可以吧//判断是否有附件上传  
    com.jspsmart.upload.File file = su.getFiles().getFile(0); //如果都没有文件上传,你还要去取它的第0个对象就不会报错? 
    if (!file.isMissing()) //如果都没有文件上传?它还会返回一个对象? 
    {  
    String sPic=file.getFileName();  
    //将附件以 当前时间+附件扩展名 作为文件名保存  
    java.text.SimpleDateFormat dateFormatter = new java.text.SimpleDateFormat("yyyyMMddHHmmss");  
    String sNowTime = dateFormatter.format(new java.util.Date());  
    图标 = sNowTime+"."+ file.getFileExt();  
    file.saveAs("/uploadfiles/"+图标);//web下建一个uploadfices文件夹  
    }  
    //验证表单数据  
    if(ID.equals("")) //如上所说,request.getParameter为空..,ID岂会不为null?引用一个指向null的对象岂不出现NullPoineterException? 
    {  
    out.print("  <script>alert('内容不能为空');history.back();  </script>");  
    }  
    if(名称.equals("")) //同上,//另:虽然JAVA中支持中文做变量名..不过这样写好吗? 
    {  
    out.print("  <script>alert('对不起,名称不能为空');history.back();  </script>"); stmt好像在conn.jsp中好像定义了
    <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:btoc"; //orcl为你的数据库的SID String user="system"; String password="11"Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    request.setCharacterEncoding("GB2312");
    %>帮我看下还有哪要改的,谢谢您!!