<jsp:useBean id="su" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
su.initialize(pageContext);
su.upload();
int count = su.save("/upload", su.SAVE_VIRTUAL);
out.println(count+"个文件上传成功!<br>");
for (int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
if (file.isMissing()) continue;
out.println("<br>文件名:" + file.getFileName()+" 长度:"+file.getSize());
}
%>
以上代码如何写成javabean如下形式public boolean upload() throws Exception {
    .................................
        }

解决方案 »

  1.   

    import com.jspsmart.upload.SmartUpload;public boolean upload() throws Exception {
        HttpServletRequest request = null;
        HttpServletResponse response = null;
        JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        _jspxFactory = JspFactory.getDefaultFactory();
        pageContext = _jspxFactory.getPageContext(this, request, response, "", true,
                                                  8192, true);
        SmartUpload su = new SmartUpload();
        su.initialize(pageContext);
        su.upload();
        int count = su.save("/upload", su.SAVE_VIRTUAL);
        out.println(count + "个文件上传成功!<br/>");
        for (int i = 0; i < su.getFiles().getCount(); i++) {
            com.jspsmart.upload.File file = su.getFiles().getFile(i);
            if (file.isMissing())
                continue;
            out.println("<br/>文件名:" + file.getFileName() + " 长度:" + file.getSize());
        }
    }
      

  2.   

    String fName=file.getFileName();
    InputStream fileStreamIn=file.getInputStream();
    OutputStream fileStreamOut=new FileOutputStream(dir+"/"+fileName);//dir为上传后文件存放的地址int bytesRead=0;
    byte[]buffer=new byte[8192];
    whie((bytesRead=fileStreamIn.read(buffer,0,8192))!=-1){
      fileStreamOut.write(buffer,0,btyesRead);
    }
    fileStreamOut.close();
    fileStreamIn.close();
    以上程序载至Struts设计P320,
    我的总结:流中读,流中写
      

  3.   

    在struts框架下定义一个Servlet,代码如下
    package jspupload;import java.io.OutputStream;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.jsp.JspFactory;
    import javax.servlet.jsp.PageContext;import com.jspsmart.upload.File;
    import com.jspsmart.upload.SmartUpload;
    /**
     * @author user
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class UploadServlet extends HttpServlet{
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException{
    try{

    OutputStream out=null;
    JspFactory _jspxFactory = null;

        _jspxFactory = JspFactory.getDefaultFactory();
        response.setContentType("text/html;charset=utf-8");
     // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    PageContext pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);


    su.initialize(pageContext);
    // 将上传文件全部保存到指定目录
    int count = su.save("/upload");下面的不用说拉
      

  4.   

    pageContext =_jspxFactory.getPageContext(this, request, response,null, true,8192,true);    
    这句编译通不过呀!!!!!!!!!!!!!!!!!!
    package cgx.run;import java.sql.*;
    import java.util.Vector;
    import cgx.util.*;
    import cgx.op.*;
    import com.jspsmart.upload.SmartUpload;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.jsp.JspFactory;
    import javax.servlet.jsp.PageContext;public class op_upload extends DataBase{
    private upload upload = new upload();
      private upload asps = new upload();                                 //新的类
            private javax.servlet.http.HttpServletRequest request;  //建立页面请求
    private javax.servlet.http.HttpServletRequest response;  //建立页面请求
        JspFactory _jspxFactory = null;
        PageContext pageContext = null;

            private boolean sqlflag = true ;                 //对接收到的数据是否正确
            private Vector uploadlist;                         //显示商品列表向量数组
            public String sqlStr="";
            public Vector getuploadlist() {
                    return uploadlist;
            }
            public boolean getSqlflag() {
                    return sqlflag;
            }
            public String to_String( String str) {
                    try
                    {
                            return new String(str.getBytes("ISO8859-1"));
                    }
                    catch (Exception e)
                    {
                            return str;
                    }
            }
    public boolean upload() throws Exception {

        _jspxFactory = JspFactory.getDefaultFactory();
        pageContext =_jspxFactory.getPageContext(this, request, response,null, true,8192,true);
        
    com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();

        mySmartUpload.initialize(pageContext);

    mySmartUpload.upload();    int count =mySmartUpload.save("/upload", mySmartUpload.SAVE_VIRTUAL);

    for (int i=0;i<mySmartUpload.getFiles().getCount();i++)
    {
    com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);
    if (file.isMissing()) continue;

    }
    }        
      public op_upload() {
           }
    }我的代码
      

  5.   

    package cgx.run;
    /**
     * <p>管理商品的类,包括商品的修改、查询,删除,添加 </p>
     */
    import java.sql.*;
    import java.util.Vector;
    import cgx.util.*;
    import cgx.op.*;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.jsp.JspFactory;
    import javax.servlet.jsp.PageContext;import com.jspsmart.upload.File;
    import com.jspsmart.upload.SmartUpload;
    public class op_upload extends DataBase{

      private upload asps = new upload();                                 //新的类
            private javax.servlet.http.HttpServletRequest request;  //建立页面请求
            private boolean sqlflag = true ;                 //对接收到的数据是否正确
            private Vector uploadlist;                         //显示商品列表向量数组
            public String sqlStr="";
            public Vector getuploadlist() {
                    return uploadlist;
            }
            public boolean getSqlflag() {
                    return sqlflag;
            }
            public String to_String( String str) {
                    try
                    {
                            return new String(str.getBytes("ISO8859-1"));
                    }
                    catch (Exception e)
                    {
                            return str;
                    }
            }
    /**
    * 将页面表单传来的资料分解
    */
    public boolean getRequest(javax.servlet.http.HttpServletRequest newrequest) {
      boolean flag = false;
      try{
       request = newrequest;
       String ID = request.getParameter("id");
       long spid = 0;
       try{
               spid = Long.parseLong(ID);
       }catch (Exception e){
       }
       asps.setId(spid);   String FILE1 = request.getParameter("FILE1");
       if (FILE1==null || FILE1.equals(""))
       {
               FILE1 = "-";
               sqlflag = false;
       }
       asps.setFILE1(to_String(FILE1));   String FILE2 = request.getParameter("FILE2");
       if (FILE2==null || FILE2.equals(""))
       {
               FILE2 = "-";
               
       }
       asps.setFILE2(to_String(FILE2));   String FILE3 = request.getParameter("FILE3");;
       if (FILE3==null)
       {
               FILE3 = "-";
       sqlflag = false;
       }
       asps.setFILE3(to_String(FILE3));   
       
       String FILE4 = request.getParameter("FILE4");
       if (FILE4 == null)
       {
               FILE4 = "-";
       
       }
       asps.setFILE4(to_String(FILE4));
       
          if (sqlflag)
       {
               flag = true;
       }
       return flag;
                    }catch (Exception e){
       return flag;
                    }
            }public boolean upload() throws Exception {
        HttpServletRequest request = null;
        HttpServletResponse response = null;
        JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        _jspxFactory = JspFactory.getDefaultFactory();
        

    --->PageContext pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);
        
    -------------编译出错语句-------------------------------


    SmartUpload su = new SmartUpload();
        su.initialize(pageContext);
        su.upload();
        int count = su.save("/upload", su.SAVE_VIRTUAL);
        
        for (int i = 0; i < su.getFiles().getCount(); i++) {
            com.jspsmart.upload.File file = su.getFiles().getFile(i);
            if (file.isMissing())
                continue;
           
        }
    }
            
      public op_upload() {
           }
    }
      

  6.   

    如果用webwork+cos来做的话
    上传文件简直就是一个享受