可把包放到WEB-INF/classes底下便可。

解决方案 »

  1.   

    d:\tomcat\webapps\你的主目录\WEB-INF\classes\
      

  2.   

    解压后把\jspsmartupload\Web-inf\classes目录下的com目录放在WEB-INF\classes\下
      

  3.   

    give you a example split two parts
    public class UploadServlet extends HttpServlet 

     //default maximum allowable file size is 100k 
     static final int MAX_SIZE = 102400; 
     //instance variables to store root and success message 
     String rootPath, successMessage; 
     /** 
      * init method is called when servlet is initialized. 
      */ 
     public void init(ServletConfig config) throws ServletException 
     { 
      super.init(config); 
      //get path in which to save file 
      rootPath = config.getInitParameter("RootPath"); 
      if (rootPath == null) 
      { 
       rootPath = "/"; 
      } 
      /*Get message to show when upload is complete. Used only if 
       a success redirect page is not supplied.*/ 
      successMessage = config.getInitParameter("SuccessMessage"); 
      if (successMessage == null) 
      { 
       successMessage = "File upload complete!"; 
      } 
     } 
     /** 
      * doPost reads the uploaded data from the request and writes 
      * it to a file. 
      */ 
     public void doPost(HttpServletRequest request, 
      HttpServletResponse response) 
     { 
      ServletOutputStream out=null; 
      DataInputStream in=null; 
      FileOutputStream fileOut=null; 
      try 
      { 
       /*set content type of response and get handle to output 
        stream in case we are unable to redirect client*/ 
       response.setContentType("text/plain"); 
       out = response.getOutputStream(); 
      } 
      catch (IOException e) 
      { 
       //print error message to standard out 
       System.out.println("Error getting output stream."); 
       System.out.println("Error description: " + e); 
       return; 
      } 
      try 
      { 
       //get content type of client request 
       String contentType = request.getContentType(); 
       //make sure content type is multipart/form-data 
       if(contentType != null && contentType.indexOf( 
        "multipart/form-data") != -1) 
       { 
        //open input stream from client to capture upload file 
        in = new DataInputStream(request.getInputStream()); 
        //get length of content data 
        int formDataLength = request.getContentLength(); 
        //allocate a byte array to store content data 
        byte dataBytes[] = new byte[formDataLength]; 
        //read file into byte array 
        int bytesRead = 0; 
        int totalBytesRead = 0; 
        int sizeCheck = 0; 
        while (totalBytesRead < formDataLength) 
        { 
         //check for maximum file size violation 
         sizeCheck = totalBytesRead + in.available(); 
         if (sizeCheck > MAX_SIZE) 
         { 
          out.println("Sorry, file is too large to upload."); 
          return; 
         } 
         bytesRead = in.read(dataBytes, totalBytesRead, 
          formDataLength); 
         totalBytesRead += bytesRead; 
        } 
        //create string from byte array for easy manipulation 
        String file = new String(dataBytes); 
        //since byte array is stored in string, release memory 
        dataBytes = null; 
        /*get boundary value (boundary is a unique string that 
         separates content data)*/ 
        int lastIndex = contentType.lastIndexOf("="); 
        String boundary = contentType.substring(lastIndex+1, 
         contentType.length()); 
        //get Directory web variable from request 
        String directory=""; 
        if (file.indexOf("name=\"Directory\"") > 0) 
        { 
         directory = file.substring( 
          file.indexOf("name=\"Directory\"")); 
         //remove carriage return 
         directory = directory.substring( 
          directory.indexOf("\n")+1); 
         //remove carriage return 
         directory = directory.substring( 
          directory.indexOf("\n")+1); 
      

  4.   

    //get Directory 
         directory = directory.substring(0, 
          directory.indexOf("\n")-1); 
         /*make sure user didn't select a directory higher in 
          the directory tree*/ 
         if (directory.indexOf("..") > 0) 
         { 
          out.println("Security Error: You can't upload " + 
           "to a directory higher in the directory tree."); 
          return; 
         } 
        } 
        //get SuccessPage web variable from request 
        String successPage=""; 
        if (file.indexOf("name=\"SuccessPage\"") > 0) 
        { 
         successPage = file.substring( 
          file.indexOf("name=\"SuccessPage\"")); 
         //remove carriage return 
         successPage = successPage.substring( 
          successPage.indexOf("\n")+1); 
         //remove carriage return 
         successPage = successPage.substring( 
          successPage.indexOf("\n")+1); 
         //get success page 
         successPage = successPage.substring(0, 
          successPage.indexOf("\n")-1); 
        } 
        //get OverWrite flag web variable from request 
        String overWrite; 
        if (file.indexOf("name=\"OverWrite\"") > 0) 
        { 
         overWrite = file.substring( 
          file.indexOf("name=\"OverWrite\"")); 
         //remove carriage return 
         overWrite = overWrite.substring( 
          overWrite.indexOf("\n")+1); 
         //remove carriage return 
         overWrite = overWrite.substring( 
          overWrite.indexOf("\n")+1); 
         //get overwrite flag 
         overWrite = overWrite.substring(0, 
          overWrite.indexOf("\n")-1); 
        } 
        else 
        { 
         overWrite = "false"; 
        } 
        //get OverWritePage web variable from request 
        String overWritePage=""; 
        if (file.indexOf("name=\"OverWritePage\"") > 0) 
        { 
         overWritePage = file.substring( 
          file.indexOf("name=\"OverWritePage\"")); 
         //remove carriage return 
         overWritePage = overWritePage.substring( 
          overWritePage.indexOf("\n")+1); 
         //remove carriage return 
         overWritePage = overWritePage.substring( 
          overWritePage.indexOf("\n")+1); 
         //get overwrite page 
         overWritePage = overWritePage.substring(0, 
          overWritePage.indexOf("\n")-1); 
        } 
        //get filename of upload file 
        String saveFile = file.substring( 
         file.indexOf("filename=\"")+10); 
        saveFile = saveFile.substring(0, 
         saveFile.indexOf("\n")); 
        saveFile = saveFile.substring( 
         saveFile.lastIndexOf("\\")+1, 
         saveFile.indexOf("\"")); 
        /*remove boundary ers and other multipart/form-data 
         tags from beginning of upload file section*/ 
        int pos; //position in upload file 
        //find position of upload file section of request 
        pos = file.indexOf("filename=\""); 
        //find position of content-disposition line 
        pos = file.indexOf("\n",pos)+1; 
        //find position of content-type line 
        pos = file.indexOf("\n",pos)+1; 
        //find position of blank line 
        pos = file.indexOf("\n",pos)+1; 
        /*find the location of the next boundary er 
         (ing the end of the upload file data)*/ 
        int boundaryLocation = file.indexOf(boundary,pos)-4; 
        //upload file lies between pos and boundaryLocation 
        file = file.substring(pos,boundaryLocation); 
        //build the full path of the upload file 
        String fileName = new String(rootPath + directory + 
         saveFile); 
        //create File object to check for existence of file 
        File checkFile = new File(fileName); 
        if (checkFile.exists()) 
        { 
         /*file exists, if OverWrite flag is off, give 
          message and abort*/ 
         if (!overWrite.toLowerCase().equals("true")) 
         { 
          if (overWritePage.equals("")) 
          { 
           /*OverWrite HTML page URL not received, respond 
            with generic message*/ 
           out.println("Sorry, file already exists."); 
          } 
          else 
          { 
           //redirect client to OverWrite HTML page 
           response.sendRedirect(overWritePage); 
          } 
          return; 
         } 
        } 
        /*create File object to check for existence of 
         Directory*/ 
        File fileDir = new File(rootPath + directory); 
        if (!fileDir.exists()) 
        { 
         //Directory doesn't exist, create it 
         fileDir.mkdirs(); 
        } 
        //instantiate file output stream 
        fileOut = new FileOutputStream(fileName); 
        //write the string to the file as a byte array 
        fileOut.write(file.getBytes(),0,file.length()); 
        if (successPage.equals("")) 
        { 
         /*success HTML page URL not received, respond with 
          generic success message*/ 
         out.println(successMessage); 
         out.println("File written to: " + fileName); 
        } 
        else 
        { 
         //redirect client to success HTML page 
         response.sendRedirect(successPage); 
        } 
       } 
       else //request is not multipart/form-data 
       { 
        //send error message to client 
        out.println("Request not multipart/form-data."); 
       } 
      } 
      catch(Exception e) 
      { 
       try 
       { 
        //print error message to standard out 
        System.out.println("Error in doPost: " + e); 
        //send error message to client 
        out.println("An unexpected error has occurred."); 
        out.println("Error description: " + e); 
       } 
       catch (Exception f) {} 
      } 
      finally 
      { 
       try 
       { 
        fileOut.close(); //close file output stream 
       } 
       catch (Exception f) {} 
       try 
       { 
        in.close(); //close input stream from client 
       } 
       catch (Exception f) {} 
       try 
       { 
        out.close(); //close output stream to client 
       } 
       catch (Exception f) {} 
      } 
     }