• jspsmartupload插件模拟ajax上传文件

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 一、引入jspsmartupload插件jar包

    \WebRoot\WEB-INF\lib\jspSmartUpload_supportZH.jar (一般jspSmartUpload插件不支持文件中文名,易出现乱码问题,这个jar包在原来的jar包基础上做了修改,所以这个jar包是支持文件中文名的)

    插件作用以及应用:模拟ajax上传文件,社区中用蒙版实现分享资源、发布作品不能像以前普通的表格来上传文件,所以用的是jspsmartupload插件。

    • 二、jsp中上传文件代码

    <form id="top_shareResource_submitfileForm" name="top_shareResource_submitfileForm" method="post" action="/community/resource/upload.jsp" enctype="multipart/form-data" onSubmit="return checkShareResourceFile();" target="hiddenIframe">
            <!-- 上传文件-开始 -->
            <div class="top_block_title ml10 mr10 mt10 cb">
                <div class="top_block_title_bar pl5"><%=PropertyUtil.readProperty("uploadfile",language)%>(<%=PropertyUtil.readProperty("notuploadfileandweb",language)%>)</div>
                <div class="top_block_title_content">        
                    <input type="file" id="from" name="from" type="file" size="75" onkeydown="event.returnValue=false;" onpaste="return false" class="top_input_file"></input>        
                </div>
            </div>
            <!-- 上传文件-结束 -->
            <input type="submit" class="uploadfileclass" value="<%=PropertyUtil.readProperty("cmuploadfile",language)%>" onclick="javascript:void(0)" id="top_shareResource_Upload"/>
            <iframe id="hiddenIframe" name="hiddenIframe" style="display:none;"></iframe>
            </form>

    注意<iframe id="hiddenIframe" name="hiddenIframe" style="display:none;"></iframe>很必要!!!

    详见中用蒙版分享资源的蒙版html代码

    • 三、上传文件时js验证

    function checkShareResourceFile(){
            if(document.getElementById("from").value==""){
                    alert("<%=PropertyUtil.readProperty("selectonefile",language)%>");
                    return false;
            }
            if(isHarmfulFile(document.getElementById("from").value)){
                alert("<%=PropertyUtil.readProperty("filealarm",language)%>");
                return false;
            }
            document.getElementById("top_shareResource_Upload").disabled=true;//为了防止重复提交的问题
            document.getElementById("top_shareResource_Upload").value="<%=PropertyUtil.readProperty("insubmit",language)%>";
            return true;
    }

    • 四、文件提交到/community/resource/upload.jsp

    <%@ page language="java"
        import="java.util.*,com.uisk.hep.bo.*,hep.webapp.session.*,com.jspsmart.*,com.jspsmart.upload.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    <%@ page import="etc.util.PropertyUtil,etc.util.SysConstants"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <%   
        //新建一个SmartUpload对象   
        SmartUpload su = new SmartUpload();  

        long file_size_max=800000000;
        
        String fileName2="",ext="",testvar="";
        
        String url="upImages\\community\\resource\\"; //应保证在根目录中有此目录的存在(也就是说需要自己建立相应的文件夹)
        User user = SessionManager.getInstance().getUser(request);
        String language=SysConstants.SYS_LANGUAGE;
        if(user!=null){
               language=user.getLanguage();     
        }
        //上传初始化   
        su.initialize(pageContext);   
     
        // 设定上传限制   
        //1.限制每个上传文件的最大长度。   
      //  su.setMaxFileSize(file_size_max);   
     
        //2.限制总上传数据的长度。   
     //   su.setTotalMaxFileSize(2000000000);   
     
           
        boolean sign = false;   
           
        //3.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,bak扩展名的文件和没有扩展名的文件。   
        try {   
        //    su.setAllowedFilesList("doc,txt,rar,jpg,png,jsp,docx,ppt,xml");

            su.setDeniedFilesList("exe,bat,bak");   
            //上传文件   
            su.upload();   
     
        } catch (Exception e) {  
            e.printStackTrace();
            %>

            <SCRIPT language=javascript>

            alert("<%=PropertyUtil.readProperty("notuploadfileandweb",language)%>");
            window.history.go(-1);     

            </script>
            <%
          }
            try{

                com.jspsmart.upload.SmartFile myFile = su.getFiles().getFile(0);
            //    System.out.println("fileame:"+myFile.getFileName());
                
                if(myFile!=null){
                    sign = true;
                }

                //String myFileName=myFile.getFileName(); //取得上载的文件的文件名

                ext= myFile.getFileExt(); //取得后缀名

                int file_size=myFile.getSize(); //取得文件的大小

                String saveurl="";

                if(file_size<file_size_max){

                //更改文件名,取得当前上传时间的毫秒数值

                Calendar calendar = Calendar.getInstance();

                String filename = String.valueOf(calendar.getTimeInMillis());

                saveurl=application.getRealPath("/")+url;

                saveurl+=filename+"."+ext; //保存路径

                myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL);
                
                String filepath = "/upImages/community/resource/"+filename + "." + ext;
                
            //    System.out.println("filepath:"+filepath);
                
                if(sign){
                    %>

                    <SCRIPT language=javascript>

                //    alert('上传文件成功!');

                    </script>
                    <%
                    out.println("<script language=javascript>parent.callback('"+filepath+"','resource')</script>");
                }else{
                    %>

                    <SCRIPT language=javascript>

                    alert('<%=PropertyUtil.readProperty("uploadFailed",language)%>');

                    </script>
                    <%
                }

            //    String ret = "parent.HtmlEdit.focus();";

            //    ret += "var range = parent.HtmlEdit.document.selection.createRange();" ;

            //    ret += "range.pasteHTML('<img src=\"" + request.getContextPath() + "/upload/" + filename + "." + ext + "\">');" ;

            //    ret += "alert('上传成功!');";

            //    ret += "window.location='upload.htm';";

            //    out.print("<script language=javascript>" + ret + "</script>");

                }

                }catch (Exception e){

                out.print(e.toString());

                }

                %>

    • 五、使用jspsmartupload插件模拟ajax上传文件已经完毕

    如果想更多的了解jspsmartupload插件,见文档:jspSmartUpload使用文档.docx

    • 标签:
    • ret
    • 文件
    • string
    • 39
    • 上传文件
    • language
    • 模拟ajax
    • script
    • div
    • propertyutil.readproperty
    • jspsmartupload
    • alert
    • 上传
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部