`

关于Struts中Jquery上传组件uploadify用法

阅读更多

1.JS


<script type="text/javascript" src="${ ctx }/widgets/upload/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="${ ctx }/widgets/upload/swfobject.js"></script>

    <script type="text/javascript" src="${ ctx }/widgets/upload/jquery.uploadify.v2.1.0.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){
            $("#uploadify").uploadify({
                'uploader'       : '${ ctx }/widgets/upload/uploadify.swf',
                'script'         : '${ ctx }/uploadfile.do?method=upload',
                'scriptData'     : {'type':'clientproduct'},
                'method'         : 'post',
                'cancelImg'      : '${ ctx }/styles/images/delete.gif',
                'buttonImg'        : '${ ctx }/widgets/upload/xzButton.gif',
                'folder'          : '/upload/img',
                'queueID'        : 'fileQueue',
                'auto'           : false,
                'width'             : 90,
                'height'         : 20,
                'sizeLimit'         : 3*1024*1024,
                'multi'          : true,
                'wmode'             : 'transparent',
                'simUploadLimit' : 999,
                'fileExt'         : '*.png;*.doc;*.gif;*.jpg;*.bmp;*.jpeg;*.docx;*.txt;*.pdf',
                'fileDesc'         : '图片文件(*.png;*.doc;*.gif;*.jpg;*.bmp;*.jpeg;*.docx;*.txt;*.pdf)',
                'onSelectOnce' : function(event,data,data)
                {
                  filesSelected:true;
                },
                'onComplete' : function(event,queueId,fileObj,response,data)
                {
                    //alert("response="+response);
                    setImg2product($.trim(response),$('#ttype').val())
                },
                'onAllComplete' : function(event,data)
                {   
                    if($.trim($('#ttype').val())==""){
                        $('#result').html('没有选择添加文件类型,请重新上传!');
                    }else{
                        $('#result').html(data.filesUploaded +'个文件上传成功');
                    }
                } 
            });
           
        });
       
        function shun(){
            if($.trim($('#ttype').val())==""){
                alert("请先选择添加文件类型!");
            }else{
                $('#uploadify').uploadifyUpload();
            }   
        }
       
        function setImg2product(dpID,type){//绑定产品与图片
            var clinentproductID = $("*[name='id']").val();
            $.ajax({
                type : "post",
                method : "post",
                dataType : "json",
                data:{
                    "clinentproductID":clinentproductID,
                    "dpID":dpID,"type":type
                },
                url : "clientdieplate.do?method=saveInfo",
                success : function(data) {
                    showImg(type);
                }
            });
        }
       
        function showImg(type){//显示文件
            var clinentproductID = $("*[name='id']").val();
            $.ajax({
                type : "post",
                method : "post",
                dataType : "json",
                data:{
                    "clinentproductID":clinentproductID,"type":type
                },
                url : "clientdieplate.do?method=getInfoByclientproductID",
                success : function(data) {
                    if($.trim(data.type)=="dieplate"){
                        $('#dieplantShow').html(data.dieplantShow);
                    }else if($.trim(data.type)=="certification"){
                        $('#certificationShow').html(data.certificationShow);
                    }else if($.trim(data.type)=="colorbox"){
                        $('#colorboxShow').html(data.colorboxShow);
                    }else if($.trim(data.type)=="boxmark"){
                        $('#boxmarkShow').html(data.boxmarkShow);
                    }else if($.trim(data.type)=="screwpack"){
                        $('#screwpackShow').html(data.screwpackShow);
                    }else if($.trim(data.type)=="serialno"){
                        $('#serialnoShow').html(data.serialnoShow);
                    }else if($.trim(data.type)=="product"){
                        $('#productShow').html(data.productShow);
                    }else if($.trim(data.type)=="other"){
                        $('#otherShow').html(data.otherShow);
                    }else if($.trim(data.type)=="productinfo"){
                        $('#productinfoShow').html(data.productinfoShow);
                    }else if($.trim(data.type)=="specification"){
                        $('#specificationShow').html(data.specificationShow);
                    }
                }
            });
        }
       
        function fnDeleteDiePlate(fileID,type){//文件删除
            //var text;
            //if(type=="specification" || type=="productinfo"){
            //    text = "您是否要删除该文件?";
            //}else{
            //    text = "您是否要删除该图片?";
            //}
            //if(window.confirm(text)){
            $.ajax({
                type : "post",
                method : "post",
                dataType : "json",
                data:{
                    "dpid":fileID,"type":type
                },
                url : "clientdieplate.do?method=deleteInfo",
                success : function(data) {
                    showImg(data.type);   
                }
            });
            //}
        }
       
        function fnDowmloadFile(fileID){//文件下载
            $.ajax({
                type : "post",
                method : "post",
                dataType : "json",
                data:{
                    "fileID":fileID
                },
                url : "../uploadfile.do?method=downloadFile"
            });
        }
      </script>


2.Action方法

/**
     * Description:文件上传
     * @author 李仕亮
     */
    @SuppressWarnings("unchecked")
    private Map<String,String> uploadFile(LazyValidatorForm uploadfileForm, HttpServletRequest request) throws FileNotFoundException, IOException {
        //检查并创建上传目录
        String filepath = "upload//" + PowerConstant.UPLOAD_IMG_PATH;
        String dirPath = request.getSession().getServletContext().getRealPath("/") + filepath;// 图片上传路径request.getRealPath("/")
        FileOperateUtil.creatDirs(dirPath);
        //取得一个文件
        Hashtable<String, FormFile> fileHashtable = uploadfileForm.getMultipartRequestHandler().getFileElements();
        Enumeration<String> enumeration = fileHashtable.keys();
        enumeration.hasMoreElements();
        String key = (String) enumeration.nextElement();
       
        FormFile formFile = (FormFile)fileHashtable.get(key);
       
        String rename = UUID.randomUUID().toString();//防止命名重复,产生相应的异常
       
        String filename = formFile.getFileName().trim(); //文件名
        String filetype = filename.substring(filename.lastIndexOf(".") + 1);//文件类型
        String realPath = dirPath + "//" + rename + "." + filetype; //真实文件路径
        String contentType = formFile.getContentType();
        String filesize = FileSizeConvert.convert(formFile.getFileSize()); //文件大小

        Map<String,String> fileMap = null;
        if (!filename.equals("")) {
            // 在这里上传文件
            //System.out.println(rename + "." + filetype);
            //System.out.println("---------------------------------------------");
            InputStream is = formFile.getInputStream();
            OutputStream os = new FileOutputStream(realPath);
            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            is.close();
           
            // 将此文件的信息作为参数预先保存,最后存入数据库中
            fileMap =new HashMap<String,String>();
            fileMap.put("filename", filename);
            fileMap.put("filepath", filepath + "//" + rename + "." + filetype);
            fileMap.put("filetype", contentType);
            fileMap.put("filesize", filesize);
        }
        return fileMap;
    }   
   
    /**
     * Description:文件上传
     * @author 李仕亮
     * @throws MapperException
     */
    @SuppressWarnings("unchecked")
    public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws IOException, ServletException, MapperException  {
        LazyValidatorForm uploadForm = (LazyValidatorForm) form;
        String type = request.getParameter("type");
        //log.info("type="+type);
        Map<String,String> fileMap = uploadFile(uploadForm, request);
       
        if("clientproduct".equals(type)){//上传客户产品相关图片
            if(fileMap!=null){
                response.setContentType("text/html; charset=utf-8");
                Uploadfile file = uploadfileManager.saveUpLoad(fileMap);
                PrintWriter out=response.getWriter();
                out.println(file.getId());
            }
        }else {
            if(fileMap!=null){
                Uploadfile file = uploadfileManager.saveUpLoad(fileMap);
                Map<String, Object> resultJSON = new HashMap<String, Object>();
                resultJSON.put("file", file);
                response.setContentType("text/plain;charset=UTF-8");
                super.renderHtml(response, JSONMapper.toJSON(resultJSON).render(false));
            }
        }
   
        return null;
    }
   
    public PrintWriter encodehead(HttpServletRequest request,HttpServletResponse response) throws IOException{
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        return response.getWriter();
    }
   
    /**
     * 文件下载
     */
    @SuppressWarnings("unused")
    public ActionForward downloadFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        // 存入下载记录
        String fileID = request.getParameter("fileID");
        Uploadfile uploadFile = uploadfileManager.get(fileID);
        // 跳转到下载页面
        request.setAttribute("filePath", request.getSession().getServletContext().getRealPath("/") + uploadFile.getPath());
        request.setAttribute("fileName", uploadFile.getName());
        request.setAttribute("contentType", uploadFile.getType());
        return new ActionForward("/download.do");
    }


3. jsp代码

<table style="width: 90%;">
                                                    <tr>
                                                        <td style="width:108px;">
                                                            <select name="ttype" id="ttype" style="height:20px;">
                                                                <option value="">--请选择--</option>
                                                                <c:if test="${productprice.hidecpinfo!=1 }">
                                                                    <option value="product">添加产品图片</option>
                                                                    <option value="certification">添加LOGO和标签图</option>
                                                                    <option value="colorbox">添加彩盒图</option>
                                                                    <option value="screwpack">添加螺丝包及配件图</option>
                                                                    <option value="boxmark">添加外箱唛头图</option>
                                                                    <option value="serialno">添加条形码\序列号图</option>
                                                                    <option value="other">添加其他图片</option>
                                                                    <option value="specification">添加产品说明书</option>
                                                                    <option value="dieplate">添加客户产品刀版</option>
                                                                </c:if>
                                                                <option value="productinfo">添加产品关键数据信息表</option>
                                                            </select>
                                                            <input type="hidden" name="type" id="type" value=""/>
                                                        </td>
                                                        <td style="width: 10px;">
                                                        </td>
                                                        <td style="width: 80px;">
                                                            <input type="file" name="uploadify" id="uploadify" />
                                                        </td>
                                                        <td align="left">
                                                            <a href="javascript:;" onclick="shun();">开始上传</a>|
                                                            <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消上传</a>
                                                        <span id="result" style="font-size: 13px;color: red"></span>
                                                        </td>
                                                    </tr>
                                                </table>       
                                                <div id="fileQueue" style="width: 500px;height: 150px;border: 2px solid green;overflow: scroll"></div>

3
0
分享到:
评论
1 楼 ahy608 2010-09-27  
为什么 我返回的是空的

相关推荐

    struts2+jquery.uploadify实现上传下载

    在"struts2+jquery.uploadify实现上传下载"的场景中,我们主要关注以下几个关键知识点: 1. **Struts2上传**:Struts2通过Interceptor(拦截器)机制实现了文件上传功能。默认情况下,Struts2配置了一个名为`params...

    struts2 jquery.uploadify

    这个简单的demo展示了如何在Struts2应用中集成jQuery Uploadify,以便提供用户友好的、多文件异步上传体验。下面我们将深入探讨这个知识点。 首先,我们来了解jQuery Uploadify。Uploadify是一个基于jQuery的插件,...

    Struts2结合Jquery.uploadify上传插件的应用

    在实际应用中,为了提高用户体验,经常需要处理文件上传功能,这时结合jQuery与uploadify插件可以实现高效、美观的文件上传效果。下面将详细探讨Struts2结合jQuery.uploadify插件的应用。 首先,jQuery.uploadify是...

    在Struts2中使用Uploadify组件上传文件

    ### 在Struts2中使用Uploadify组件上传文件 #### 一、Uploadify简介与特性 Uploadify是一款基于jQuery的文件上传插件,以其强大的功能和优秀的用户体验受到开发者们的青睐。它利用Flash技术实现异步文件上传,使得...

    jquery.uploadify3.2在struts2中使用的完整工程

    这个完整的工程提供了一个很好的示例,展示了如何在实际项目中集成jQuery Uploadify 3.2和Struts2,实现高效的文件上传功能。通过学习和理解这个工程,开发者可以更好地运用这些技术来优化自己的Web应用程序。

    使用jquery的uploadify插件实现文件上传

    综上所述,使用jQuery的uploadify插件实现文件上传涉及了jQuery库的使用、uploadify插件的配置、Struts2框架的集成以及Java后端的文件处理。在实际开发中,可以根据项目需求对这些步骤进行调整和优化,以实现更高效...

    jquery uploadify java版本(整合strut2web项目)

    在IT行业中,jQuery Uploadify是一款广泛使用的前端文件上传插件,它可以实现异步批量上传,大大提升了用户体验。本文将深入探讨如何将jQuery Uploadify与Java后端框架Struts2进行整合,以实现在Web项目中的文件上传...

    jquery-java-ajax-uploadify上传文件

    在IT行业中,前端开发经常会遇到文件上传的需求,而"jquery-java-ajax-uploadify上传文件"是一个经典的方法,结合了JavaScript库jQuery、Ajax技术以及Uploadify插件来实现这一功能。在这个过程中,我们将深入探讨...

    struts2 + jquery uploadfiy

    Struts2和jQuery Uploadify是两个在Web开发中常见的组件,它们主要用于实现用户界面的文件上传功能。在本文中,我们将深入探讨这两个组件的工作原理、如何集成以及它们在实际项目中的应用。 首先,Struts2是一款...

    多文件、超大文件上传(带进度条)

    通过以上步骤,我们就成功地实现了在Struts2中使用Uploadify3.2进行多文件、超大文件的上传,并带有进度条显示的功能。这不仅提升了用户体验,还解决了大文件上传可能导致的问题。记得在实际应用中,还要考虑文件...

    ssh加ajax注解版

    在项目中,可能使用jQuery库(包括uploadify插件)来处理文件上传,实现无刷新的文件上传过程。Dialog弹框可能是基于jQuery UI或自定义的JavaScript组件,用于提示用户信息或者进行交互。 5. **Uploadify上传插件**...

Global site tag (gtag.js) - Google Analytics