ITPub博客

首页 > 应用开发 > IT综合 > uploadify-v3.1 java 实例

uploadify-v3.1 java 实例

IT综合 作者:85579711 时间:2014-04-12 14:23:47 0 删除 编辑

upLoad.jsp

<%@ page language="java" pageEncoding="UTF-8" errorPage="error.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


 
   
   
    My JSP 'upLoad.jsp' starting page
   
 
 
    
 
 
 
 
 
 
 
    This is my JSP page.

 


  


  上传 
        取消上传
       

       

  

 

 

UpLoadify.java

package com.test.test;

import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.List;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
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;

public class UpLoadify extends HttpServlet{

 /**
  * 文件上传
  */
 private static final long serialVersionUID = 2384326745121073713L;
 
 @Override
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  System.out.println("-------------------UpLoadify-doGet");
  System.out.println("-------------------QueryString::::" + request.getQueryString());
  doPost(request, response);
 }
 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  System.out.println("-------------------UpLoadify-doPost");
  System.out.println("-------------------QueryString::::" + request.getQueryString());
  if(request.getParameter("folder")==null||request.getParameter("folder")==""){
   System.out.println("-------------------request.getParameter('folder')::::" + request.getParameter("folder") + " then return");
   return;
  }
  response.setContentType("text/html");
  response.setCharacterEncoding("UTF-8");
  String path = this.getServletContext().getRealPath("/");
  String fileD = request.getParameter("folder");
  String sourcePath = path + "upload/source/";
  path = path + "upload/" + fileD + "/";
  System.out.println("-------------------UpLoadify-path::::" + path);
  File folder = new File(path);
  File sourceFolder = new File(sourcePath);
  if (!folder.exists()) {
   //文件夹不存在则创建
   System.out.println("-------------------UpLoadify::::" + "创建文件夹" + fileD);
   folder.mkdirs();
  }
  if (!sourceFolder.exists()) {
   //文件夹不存在则创建
   System.out.println("-------------------UpLoadify::::" + "创建文件夹source");
   sourceFolder.mkdirs();
  }
  ServletFileUpload sfu = new ServletFileUpload(new DiskFileItemFactory());
  sfu.setHeaderEncoding("UFT-8");
  try {
   List fileList = sfu.parseRequest(request);
   String sourceName = "";
   String extName = "";
   String name = "";
   String sfileName = "";
   for (int i = 0; i < fileList.size(); i++) {
    System.out.println("-------------------UpLoadify fileList[" + i + "]::::" + fileList.get(i));
    FileItem fi = (FileItem) fileList.get(i);
    if (!fi.isFormField()) {
     sourceName = fi.getName();
     System.out.println("-------------------UpLoadify name::::" + sourceName);
     if (sourceName == null || "".equals(sourceName.trim())) {
      continue;
     }
     if (sourceName.lastIndexOf(".") >= 0) {
      // 扩展名
      name = sourceName.substring(0,sourceName.lastIndexOf("."));
      extName = sourceName.substring(sourceName.lastIndexOf("."));
      System.out.println("-------------------UpLoadify extName::::" + extName);
     }
     // 文件名规则 前缀 + 时间 + 两位随机数 + 文件分类(标识图片尺寸) + 扩展名
     Calendar ca = Calendar.getInstance();
     DecimalFormat df = new DecimalFormat();
     df.setMinimumIntegerDigits(2);
     String st = "zxy";
     if (st != null && st.length() > 6) {
      st = st.substring(0, 6);
     }
     String dateTime = ca.get(Calendar.YEAR) + ""
       + df.format(ca.get(Calendar.MONTH)) + ""
       + df.format(ca.get(Calendar.DATE)) + ""
       + df.format(ca.get(Calendar.HOUR)) + ""
       + df.format(ca.get(Calendar.MINUTE)) + ""
       + df.format(ca.get(Calendar.SECOND));
     Random rand = new Random();
     int rand_num = rand.nextInt(89)+10;
     String fileName = st + "_" + dateTime + "_" + rand_num + extName;
     sfileName = name + "_" + dateTime + "_" + rand_num + extName;
     File saveSourceFile = new File(sourcePath + sfileName);
     File saveFile = new File(path + fileName);
     fi.write(saveSourceFile);
     fi.write(saveFile);
     System.out.println("-------------------UpLoadify fileSourceName::::" + sourceName);
     System.out.println("-------------------UpLoadify fileName::::" + fileName);
    }
   }
   response.getWriter().println(sfileName);
  } catch (FileUploadException e) {
   response.getWriter().println("0");
   e.printStackTrace();
  } catch (Exception e) {
   response.getWriter().println("0");
   e.printStackTrace();
  }
  }
}

web.xml

 
    upLoadify
    com.test.test.UpLoadify
 

 
    upLoadify
    /uploadify
 

参数详解


设置的属性:

      id: jQuery(this).attr('id'),//绑定的input的ID

      langFile: 'http://www.static-xxx.nu/uploader/uploadifyLang_en.js',//语言包的路径,能设置所有的提示文字

      swf: 'http://www.static-xxx.nu/uploader/uploadify.swf',//[必须设置]swf的路径

      uploader: '/uploadify/galleri.php',//[必须设置]上传文件触发的url

      auto:false,//文件选择完成后,是否自动上传

      buttonText:'V?lj Filer',//上传按钮的文字

      height: 30,//上传按钮的高和宽

      width: 120,

      buttonCursor: 'pointer',//上传鼠标hover后Cursor的形状

      cancelImage: 'http://www.static-xxx.nu/uploadify-cancel.png',//[必须设置]取消图片的路径

      checkExisting:'/uploader/uploadify-check-existing.php',//检查上传文件是否存,触发的url,返回1/0

      debug: true,//debug模式开/关,打开后会显示debug时的信息

      fileObjName:'file',

      fileSizeLimit : 0,//文件的极限大小,以字节为单位,0为不限制。1MB:1*1024*1024

      fileTypeDesc: 'Bild JPG',//允许上传的文件类型的描述,在弹出的文件选择框里会显示

      fileTypeExts: '*.jpg',//允许上传的文件类型,限制弹出文件选择框里能选择的文件

      method: 'post',//和后台交互的方式:post/get

      multi: true,//是否能选择多个文件

      queueID: 'fileQueue',//显示上传文件队列的元素id,可以简单用一个div来显示

      queueSizeLimit : 999,//队列中允许的最大文件数目

      progressData : 'all', // 'percentage''speed''all'//队列中显示文件上传进度的方式:all-上传速度+百分比,percentage-百分比,speed-上传速度

      removeCompleted : true,//上传成功后的文件,是否在队列中自动删除

      removeTimeout: 3,

      requeueErrors : true,

      postData: {},//和后台交互时,附加的参数

      preventCaching : true,

      transparent: true,

      successTimeout : 30,//上传时的

      timeoutuploadLimit:999//能同时上传的文件数目

 设置的事件:

onDialogClose : function(swfuploadifyQueue) {//当文件选择对话框关闭时触发
  if( swfuploadifyQueue.filesErrored > 0 ){
  alert( '添加至队列时有'
  +swfuploadifyQueue.filesErrored
  +'个文件发生错误n'
  +'错误信息:'
  +swfuploadifyQueue.errorMsg
  +'n选定的文件数:'
  +swfuploadifyQueue.filesSelected
  +'n成功添加至队列的文件数:'
  +swfuploadifyQueue.filesQueued
  +'n队列中的总文件数量:'
  +swfuploadifyQueue.queueLength);
  }
}

onDialogOpen : function() {//当选择文件对话框打开时触发
  alert( 'Open!');
}

 

onSelect : function(file) {//当每个文件添加至队列后触发
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus);
}

 

onSelectError : function(file,errorCode,errorMsg) {//当文件选定发生错误时触发
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 错误代码: ' + errorCode
  + ' - 错误信息: ' + errorMsg);
}

 

onQueueComplete : function(stats) {//当队列中的所有文件全部完成上传时触发
  alert( '成功上传的文件数: ' + stats.successful_uploads
  + ' - 上传出错的文件数: ' + stats.upload_errors
  + ' - 取消上传的文件数: ' + stats.upload_cancelled
  + ' - 出错的文件数' + stats.queue_errors);
}

 

onUploadComplete : function(file,swfuploadifyQueue) {//队列中的每个文件上传完成时触发一次
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored
  + ' - 错误信息: ' + swfuploadifyQueue.errorMsg
  + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected
  + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued
  + ' - 队列长度: ' + swfuploadifyQueue.queueLength);
}

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

//上传文件出错是触发(每个出错文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 错误代码: ' + errorCode
  + ' - 错误描述: ' + errorMsg
  + ' - 简要错误描述: ' + errorString
  + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored
  + ' - 错误信息: ' + swfuploadifyQueue.errorMsg
  + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected
  + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued
  + ' - 队列长度: ' + swfuploadifyQueue.queueLength);
}

 

onUploadProgress : function(file,fileBytesLoaded,fileTotalBytes,queueBytesLoaded,swfuploadifyQueueUploadSize) {

//上传进度发生变更时触发
      alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 当前文件已上传: ' + fileBytesLoaded
  + ' - 当前文件大小: ' + fileTotalBytes
  + ' - 队列已上传: ' + queueBytesLoaded
  + ' - 队列大小: ' + swfuploadifyQueueUploadSize);
}

onUploadStart: function(file) {//上传开始时触发(每个文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus );
}

onUploadSuccess : function(file,data,response) {//上传完成时触发(每个文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 服务器端消息: ' + data
  + ' - 是否上传成功: ' + response);

uploadify-v3.zip

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29063131/viewspace-1140711/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-07-22

  • 博文量
    39
  • 访问量
    101474