`

Jquery_Uploadify3.2与Struts2结合学习笔记

阅读更多

1、 下载到官方网址下载“uploadify3.2”插件。

2、 下载swfobject_2_2js插件

3、 搭建struts2框架。

4、 创建upload2.jsp页面,内容如下:

   <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>Jquery插件上传</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <link rel="stylesheet" type="text/css" href="js/uploadify/uploadify.css">

    <script type="text/javascript" src="js/uploadify/jquery-1.7.2.min.js"></script>

    <script type="text/javascript" src="js/uploadify/swfobject.js"></script>

    <script type="text/javascript" src="js/uploadify/uploadify.js"></script>

    <script type="text/javascript" src="js/uploadify/uploadify.min.js"></script>

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

    <script type="text/javascript">

             $(function() {

              $("#file_upload").uploadify({

                  debug:false,

                  auto:true,//是否自动上传

                  height: 30,  

                  buttonText:'上传文件',

                  cancelImage:'js/uploadify/uploadify-cancel.png',

                  swf : 'js/uploadify/uploadify.swf',

                  expressInstall:'js/uploadify/expressInstall.swf',

                  uploader : '<%=path%>/upload/fileUpload.action', //后台处理上传文件的action 

                  width  : 120 ,

                  multi:false,//是否允许多个文件上传

                  queueID:'uploadfileQueue',

                  fileObjName:'fileName', //与后台Action中file属性一样

                  formData:{ //附带值       

                                'userid':'111',

                                'username':'tom', 

                                'rnd':'111'

                                },

                   successTimeout:99999,//上传超时时间

                   overrideEvents:['onDialogClose'],

                  fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',

                  fileTypeExts:'*.*',//*.jpg;*.jpge;*.gif;*.png

                  queueSizeLimit : 3,//

                 // simUploadLimit:1,//一次可以上传1个文件

                  fileSizeLimit:'20MB',//上传文件最大值

                  //返回一个错误,选择文件的时候触发

                    onSelectError:function(file, errorCode, errorMsg){

                          switch(errorCode) {

                              case -100:

                                  alert("上传的文件数量已经超出系统限制的"+$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!");

                                  break;

                              case -110:

                                  alert("文件 ["+file.name+"] 大小超出系统限制的"+$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!");

                                  break;

                              case -120:

                                  alert("文件 ["+file.name+"] 大小异常!");

                                  break;

                              case -130:

                                  alert("文件 ["+file.name+"] 类型不正确!");

                                  break;

                          }

                      },

                       //每次更新上载的文件的进展

                      onUploadProgress: function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {

                      //alert(bytesUploaded);

                           //有时候上传进度什么想自己个性化控制,可以利用这个方法

                           //使用方法见官方说明

                      },

                       //检测FLASH失败调用

                       onFallback:function(){

                          alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");

                      },

                      //上传到服务器,服务器返回相应信息到data里

                     onUploadSuccess:function(file, data, response){

                      var fileNameAndPath=data.split(",");

                      var phtml="<p><a href='#' onlick=downLoad('"+fileNameAndPath[1]+"')>"+fileNameAndPath[0]+"</a><img alt='删除' src='js/uploadify/uploadify-cancel.png' onclick=delFile(this)></p>";

                      if($("#uploadfileQueue p").length==0){

                           $("#uploadfileQueue").html(phtml);

                      }else{

                           $("#uploadfileQueue p:last").after(phtml);

                      }

                          //alert(data+"上传成功");

                      },

                     onSelect : function(file) {

                       //alert(file.name);         

                      },

                      removeCompleted:true,//上传的文件进度条是否消失

                      requeueErrors:false,

                      removeTimeout:2,//进度条消失的时间,默认为3

                      progressData:"percentage",//显示上传的百分比

                       onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) {  

                         $("#dialog-message").html(errorString);  

                         } , 

                      onError:function(event, queueID, fileObj){

                       alert("文件:" + fileObj.name + " 上传失败"); 

                      }

             });

            });

             //删除文件

             function delFile(obj){

             $(obj).parent().remove();

             }

        </script>

  </head>

 

  <body>

    <input type="file" id="file_upload"  name="fileName">

    <div  id="uploadfileQueue" style="width: 400px;">

   

    </div>

   

  </body>

</html>

5、 创建处理上传文件FileUploadAction.java,内容如下:

  /**  

 * @title FileUploadAction.java

 * @package com.ys.uploadfile.action

 * @description 文件描述

 * @author lijf 

 * @update 2012-12-13 下午04:17:35

 * @version V1.0  

 */

package com.ys.uploadfile.action;

 

 

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.nio.charset.Charset;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import java.util.UUID;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.struts2.ServletActionContext;

import org.apache.struts2.interceptor.ServletRequestAware;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class FileUploadAction extends ActionSupport implements ServletRequestAware {

 

    /**

     * @fields serialVersionUID

     */

 

    private static final long serialVersionUID = 1L;

    private HttpServletRequest request; 

    private List<File> fileName;//这里的"fileName"一定要与表单中的文件域名相同  

    private List<String> fileNameContentType;//格式同上"fileName"+ContentType  

    private List<String> fileNameFileName;//格式同上"fileName"+FileName  

    private String savePath;//文件上传后保存的路径

 

    /**

     *

     * @return

     * @throws Exception

     * @author lijf 

     * @description 上传文件

     * @update 2013-1-26 下午02:15:26

     */

    public void upload() throws Exception {//intentionPicture

       String uploadFileName="";

       File dir=new File(getSavePath()); 

       String savePath=getSavePath();//保存上传文件的地址

       if(!dir.exists()){ 

           dir.mkdirs(); 

       } 

       List<File> files=getFileName(); 

       for(int i=0;i<files.size();i++){ 

           FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getFileNameFileName().get(i)); 

           FileInputStream fis=new FileInputStream(getFileName().get(i)); 

           byte []buffers=new byte[1024]; 

           int len=0; 

           while((len=fis.read(buffers))!=-1){ 

              fos.write(buffers,0,len); 

           } 

           fos.close();

           fis.close();

           uploadFileName=getFileNameFileName().get(i);

       } 

       //设置响应内容的字符串编码

       ServletActionContext.getResponse().setCharacterEncoding("UTF-8");

       ServletActionContext.getResponse().setContentType("text/plain");

        ServletActionContext.getResponse().getWriter().print(uploadFileName+","+savePath+"\\"+uploadFileName);

 

    }

   

   

    /* (non-Javadoc)下载文件

     * @see com.opensymphony.xwork2.ActionSupport#execute()

     */

    @Override

    public String execute() throws Exception {

       // TODO Auto-generated method stub

       return "success";

    }

 

       public InputStream getInputStream() {

           return ServletActionContext.getServletContext().getResourceAsStream("/" + fileName);

       }

 

 

    /* (non-Javadoc)

     * @see org.apache.struts2.interceptor.ServletRequestAware#setServletRequest(javax.servlet.http.HttpServletRequest)

     */

    public void setServletRequest(HttpServletRequest req) {

       this.request=req;

 

    }

 

    public List<File> getFileName() {

       return fileName;

    }

 

    public void setFileName(List<File> fileName) {

       this.fileName = fileName;

    }

 

    public List<String> getFileNameContentType() {

       return fileNameContentType;

    }

 

    public void setFileNameContentType(List<String> fileNameContentType) {

       this.fileNameContentType = fileNameContentType;

    }

 

    public List<String> getFileNameFileName() {

       return fileNameFileName;

    }

 

    public void setFileNameFileName(List<String> fileNameFileName) {

       this.fileNameFileName = fileNameFileName;

    }

 

    @SuppressWarnings("deprecation")

    public String getSavePath() {

       return request.getRealPath(savePath); 

    }

 

    public void setSavePath(String savePath) {

       this.savePath = savePath;

    }

 

 

 

}

6、 struts2.xml配置内容如下

  <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   

    <!-- 上传文件的action -->

    <constant name="struts.multipart.maxSize" value="1024000000"/> 

    <package name="upload" namespace="/upload" extends="struts-default">

       <action name="fileUpload" class="com.ys.uploadfile.action.FileUploadAction" method="upload">

           <param name="savePath">/uploads</param> 

       </action>

      

    </package>

</struts>

 

 

注:uploadify的属性配置请参考附件

分享到:
评论
1 楼 masuweng 2016-09-23  
 

相关推荐

    jquery_uploadify_v3.2版 jquery.uploadify.js

    jquery_uploadify_v3.2版 jquery.uploadify.js 英文提示汉化

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

    这个完整的工程是将Uploadify与Struts2框架结合,以Java后端作为处理服务器端请求的核心,实现文件上传功能。 ### 1. jQuery Uploadify 3.2 Uploadify 3.2是基于jQuery的一个强大的文件上传组件,其主要特性包括:...

    JQuery_uploadify_struts2_jsp__ajax多文件上传

    标题中的"JQuery_uploadify_struts2_jsp__ajax多文件上传"涉及到的是一个使用jQuery、uploadify插件、Struts2和JSP技术实现的AJAX多文件上传功能。这个功能允许用户在不刷新页面的情况下,上传多个文件到服务器。 ...

    jquery上传插件Uploadify3.2中文参考手册

    今天我要给大家介绍额就是一款jQuery的无刷新上传插件 -UploadifyjQuery 上传插件Uploadify3.2最新版本中文实用手册,对于该插件的属性方法进行详细讲解官方地址:http://w 资源太大,传百度网盘了,链接在附件中,...

    jQuery插件uploadify3.2.zip

    《jQuery插件uploadify3.2深度解析》 在当今的Web开发中,用户交互体验是至关重要的一环,其中文件上传功能是常见的需求之一。jQuery作为JavaScript库的翘楚,其丰富的插件生态为开发者提供了便利。Uploadify,便是...

    uploadify 3.2

    - `jquery.uploadify.js` 和 `jquery.uploadify.min.js`:这是jQuery插件的主要脚本文件,包含Uploadify的逻辑代码,`min.js`是压缩版,用于生产环境以减少加载时间。 - `index.php`:示例页面,展示了如何在实际...

    Uploadify3.2Demo

    jQuery的广泛使用使得开发者对它的API和用法比较熟悉,因此使用Uploadify3.2可以降低学习曲线。 Uploadify3.2的核心功能之一是支持多文件上传。用户可以通过简单的界面选择并上传多个文件,而无需多次点击或等待每...

    asp.net批量上传for uploadify3.2(附uploadify3.2参数详解)

    Uploadify3.2是一款流行的JavaScript插件,它与ASP.NET结合使用,能够实现优雅且高效的文件上传体验。在这个项目中,我们看到Uploadify3.2被优化以适应ASP.NET环境,实现了批量上传的功能。 Uploadify3.2参数详解:...

    jquery+uploadify3.2带进度条的多文件

    jquery+uploadify3.2实现多文件上传并且有进度(IE,FF,Google浏览器兼容),本人已经通过IE,火狐,google浏览器测试通过了。将项目直接导入myeclipse下就可以直接运行!(IE,FF,Google浏览器兼容) 附件大小...

    【Asp.net上传】jQuery.Uploadify 3.2版本的一个实例

    在本文中,我们将深入探讨如何在ASP.NET环境中利用jQuery Uploadify 3.2插件实现文件上传功能。jQuery Uploadify是一款流行的JavaScript库,它提供了一种直观、用户友好的方式来处理多文件上传,适用于各种Web应用...

    jquery_uploadify实现的下载进度条

    6. **Struts2集成**:如果你的项目使用Struts2框架,需要将Uploadify的服务器端脚本与Struts2的Action相结合。在Action中添加接收文件的属性,使用Struts2的注解或XML配置来处理文件上传。 7. **安全性考虑**:在...

    uploadify_v3.2

    "uploadify_v3.2" 是一个专门针对JSP平台的文件上传组件,它利用Flash技术来实现用户界面。Uploadify是一款功能强大的JavaScript插件,主要用于网页上的文件上传操作,提供了一种简单、友好的用户体验。这个版本是...

    jQuery_Uploadify_3.0_上传插件使用说明

    ### 使用jQuery Uploadify 3.0进行文件上传的详尽指南 #### 一、简介 jQuery Uploadify是一款基于Flash技术的文件上传插件,旨在简化前端文件上传过程,提供友好的用户界面。此插件支持多种文件上传方式,并且可以...

    JQuery_ 文件上传_Uploadify插件

    jQuery与Uploadify概述** jQuery是一个广泛使用的JavaScript库,简化了HTML DOM操作、事件处理、动画效果和Ajax交互。Uploadify是基于jQuery的插件,它利用Flash的FileReference对象实现了文件选择和上传的异步...

    uploadify3.2配置说明

    uploadify3.2配置说明只有说明没有插件

    uploadify3与struts2结合实现有进度条文件上传实例

    这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...

    jsp uploadify_v3.2 代码

    在这个版本中,`uploadify`库结合了JSP(JavaServer Pages)技术,为Web开发者提供了一个高效且用户友好的文件上传工具。下面将详细介绍`uploadify`的核心功能、工作原理以及如何在JSP环境中集成和使用。 1. **核心...

    Blog.rar_Uploadify_java jquery uploadfy_java 批量上传_uploadify java

    总之,本项目展示了如何将前端的jQuery Uploadify插件与Java后端相结合,实现一个高效且用户友好的批量文件上传功能。对于想要学习这一领域的开发者来说,这是一个很好的实践案例。通过深入研究此项目,你可以了解到...

Global site tag (gtag.js) - Google Analytics