想问下谁有使用过jspsmartupload组件开发JSP页面上传的成功例子吗?能发一份给我吗?我用了这个不知道为什么老是在smartup.upload()那里过不去. 谢谢大家帮帮忙..

解决方案 »

  1.   

    smartup.upload()过不去的原因是不是报内存溢出了?把文件设定改小,用小文件测试,大文件这个东西要很大的实际内存,找2G以上的机器跑服务才可以
      

  2.   

    我已经上传是空的txt文件的了,已经很小的,这样也不行呀.
      

  3.   

    没有报错,只是我内存耗尽死机.
    public void upload() throws ServletException,IOException,SmartUploadException
        {
            int i = 0;
            //boolean flag = false;
            boolean flag1 = false;
            //boolean flag2 = false;
            long l = 0L;
            //String s = "";//new String();
            //String s2 = "";//new String();
            String s4 = ""; //new String();
            String s5 = ""; //new String();
            String s6 = ""; //new String();
            String s7 = ""; //new String();
            String s8 = ""; //new String();
            String s9 = ""; //new String();
            String s10 = ""; //new String();
            m_totalBytes = m_request.getContentLength();
            m_binArray = new byte[m_totalBytes];
            int j;
            for(;i < m_totalBytes;i += j)
            {
                try
                {
                    m_request.getInputStream();
                    j = m_request.getInputStream().read(m_binArray,i,m_totalBytes - i);
                }
                catch(Exception exception)
                {
    就在这里过不去,例如m_totalBytes得到上传文件444byte,但是在这个循环里.那个i变成负数增加.-5,-6,-7进增加上去,我不知道为什么,但是这样子i<m_totalBytes就会变得永远不能成立了.
    所以死在这里了,我换了另外一个jar包也一样.
      

  4.   

    com.jspsmart.upload.SmartUpload upload=new com.jspsmart.upload.SmartUpload();
    upload.initialize(pageContext);
    upload.setMaxFileSize(10000000); //限制上传文件的大小1兆
    upload.upload();//上传
    String strParmeter1=upload.getRequest().getParameter("Parmeter1");
    //文件上传后的文件对象
    com.jspsmart.upload.File myFile = upload.getFiles().getFile(0);
    String strFileName = myFile.getFileName();
    String abspath =request.getRealPath("/")+"/uploadFiles/"+strFileName;
    myFile.saveAs(abspath);
      

  5.   

    我也是用了这个呀
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="com.jspsmart.upload.*" %>
    <%@ page import="DBstep.iDBManager2000.*"%>
    <%
       //实例化上载bean
        com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
        //初始化
        mySmartUpload.initialize(pageContext); 
        //设置上载的最大值
        mySmartUpload.setMaxFileSize(500 * 1024*1024);
        //上载文件
        mySmartUpload.upload();
       //循环取得所有上载的文件
       for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
         myFileName=myFile.getFileName();
        //取得不带后缀的文件名
        String  suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
        //取得后缀名
        String  ext= mySmartUpload.getFiles().getFile(0).getFileExt();  
        //取得文件的大小  
        int fileSize=myFile.getSize();
        //保存路径
        String aa=getServletContext().getRealPath("/")+"jsp\\";
        String trace=aa+myFileName;
        //取得别的参数
        String explain=(String)mySmartUpload.getRequest().getParameter("text");
        String send=(String)mySmartUpload.getRequest().getParameter("send");
        //将文件保存在服务器端 
        myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);

    /*
        //下面的是将上载的文件保存到数据库中
        //将文件读到流中 
        java.io.File file = new java.io.File(trace);
        java.io.FileInputStream fis = new java.io.FileInputStream(file);
      out.println(file.length());
       //打开数据库
       ResultSet result=null;
       String mSql=null;
       PreparedStatement prestmt=null; 
       DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
       DbaObj.OpenConnection();
       //将文件写到数据库中
       mSql="insert into list (name,password,size,date,MarkBody) values (?,?,?,?,?)";
       prestmt =DbaObj.Conn.prepareStatement(mSql);
       prestmt.setString(1, "aaa1");
       prestmt.setString(2, "0000");
       prestmt.setInt(3, fileSize);
       prestmt.setString(4, DbaObj.GetDateTime());
       prestmt.setBinaryStream(5,fis,(int)file.length());
       DbaObj.Conn.setAutoCommit(true) ;
       prestmt.executeUpdate();
       DbaObj.Conn.commit();
       out.println(("上载成功!!!").toString());
       }
       else 
       { out.println(("上载失败!!!").toString()); } 
       }//与前面的if对应
       
       */
    %>
      

  6.   

    这是我后来改过后的.
    <HTML><HEAD><TITLE>上传成功!</TITLE>
    <META content="text/html; charset=gb2312" http-equiv=Content-Type>
    </HEAD>
    <BODY leftMargin=0 topMargin=0>
    <jsp:useBean id="mySmartUpload" scope="page" class="com.sztelecom.csc.mcms.tools.SmartUpload" />
    <table width="80%"  border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF">
      <tr>
        <td align="center"> 
    <% 
     
     String fileName = null;
    com.sztelecom.csc.mcms.tools.SmartFile myFile =null;
      try{
     mySmartUpload.initialize(pageContext);
      mySmartUpload.setMaxFileSize(1024 * 1024*1024) ;
     
    mySmartUpload.upload();}
    catch (Exception e){
    System.out.println("上传文件太大");
    }
     for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
     myFile = mySmartUpload.getFiles().getFile(0);
     if (!myFile.isMissing()) {
      //String ext=myFile.getFileExt();//得到后缀   
      fileName = myFile.getFileName();
                myFile.saveAs("e:/home/" + fileName);//你要存放文件所在文件夹的相对路径
         System.out.println("文件:<b>"+fileName+"</b>上传成功!<br>文件大小:" + myFile.getSize() + "kb<BR>");
         }
         else{System.out.println("出错");}
        }
    %>
    </BODY></HTML>
      

  7.   

    kajh(黑丁)你能把你的upload.jsp的原代码粘出来让我看下吗?