JQuery uploadify 上传插件使用

后来朋友推荐了一个这个叫uploadify的上传插件,似乎挺好,就到官方下了个示例运行,感觉挺好,自己再稍加美化一下就OK
了..!

1、所需HTML表单元素

uploadify这个插件是基于js里面的jquery库写的。结合了ajax和flash,实现了这个多线程上传的功能。

接下来就讲讲使用过程吧:

[html]
<input type=”file” name=”fileImg” id= “fileImg” /> 
<div id=”fileQueue” ></div> 
<a href=”javascript:upload()” class=”easyui-linkbutton”
id=”btn_save” >  
上传…</ a>    

现在最新版为3.2.1。

  1. 下载

<input type=”file” name=”fileImg” id= “fileImg” />
<div id=”fileQueue” ></div>
<a href=”javascript:upload()” class=”easyui-linkbutton”
id=”btn_save” >
上传…</ a>  
 

在线实例

   官方网站:

2、插件初始化

实例中用到的php文件UploaderDemo.php请在页面下方下载

  
直接下载:jquery.uploadify-v2.1.0.rar

[javascript]
$( “#fileImg”).uploadify({ 
              ‘uploader’ :
‘${ctx}/handlePicture.action?JSESSIONID=${pageContext.session.id}’ , 
              ‘swf’ : ‘${ctx}/js/uploadify/uploadify.swf’ , 
              ‘cancelImg’ :’${ctx}/js/uploadify/cancel.png’ , 
              ‘fileObjName’ :’fileImg’ , 
              ‘queueID’ : ‘fileQueue’ , 
              ‘auto’ : false , 
              ‘buttonText’ :’选择’ , 
              ‘fileSizeLimit’ : ’50MB’ , 
              ‘multi’ :false , 
              ‘height’ :20, 
              ‘wmode’ :’transparent’ , 
              //上传完成时事件  
              ‘onUploadSuccess’ : function (file,data,response)
{                   
                  data=eval( “(” +data+”)” ); 
                   if (data.status==’1′ ) 
                  { 
                        $.messager.alert( ‘提示:’ ,’上传成功’ ,’info’
); 
                        $( “#imgView” ).attr(“src” ,ctx+
“/”+data.object); 
                        $( “#picturew”
).val(data.object.substring(data.object.lastIndexOf( “/”)+1)); 
                  } 
                   else 
                  { 
                        $.messager.alert( ‘提示:’ ,’上传失败’ ,’info’
); 
                  } 
              } 
          }); 

引入文件

   我的Demo:
MyUpload.rar               
官方网站也有demo

$( “#fileImg”).uploadify({
              ‘uploader’ :
‘${ctx}/handlePicture.action?JSESSIONID=${pageContext.session.id}’ ,
              ‘swf’ : ‘${ctx}/js/uploadify/uploadify.swf’ ,
              ‘cancelImg’ :’${ctx}/js/uploadify/cancel.png’ ,
              ‘fileObjName’ :’fileImg’ ,
              ‘queueID’ : ‘fileQueue’ ,
              ‘auto’ : false ,
              ‘buttonText’ :’选择’ ,
              ‘fileSizeLimit’ : ’50MB’ ,
              ‘multi’ :false ,
              ‘height’ :20,
              ‘wmode’ :’transparent’ ,
              //上传完成时事件
              ‘onUploadSuccess’ : function (file,data,response)
{                 
                  data=eval( “(” +data+”)” );
                   if (data.status==’1′ )
                  {
                        $.messager.alert( ‘提示:’ ,’上传成功’ ,’info’
);
                        $( “#imgView” ).attr(“src” ,ctx+
“/”+data.object);
                        $( “#picturew”
).val(data.object.substring(data.object.lastIndexOf( “/”)+1));
                  }
                   else
                  {
                        $.messager.alert( ‘提示:’ ,’上传失败’ ,’info’
);
                  }
              }
          });

  • <link rel=”stylesheet” type=”text/css” href=”uploadify.css” />
  • <script type=”text/javascript”
    src=”jquery.min.js”></script>
  • <script type=”text/javascript”
    src=”jquery.uploadify.js”></script>

   下载解压后:

 

使用方法

      图片 1

3、上传掉用

 <form>
 <div id="queue"></div>
 <input id="file_upload" name="file_upload" type="file" multiple="true">
 </form>
 <div id="uploadfiles"></div> 
<div id="fileQueue" style="clear:both"></div>
<script type="text/javascript">
var timestamp = new Date().getTime();
var token = Math.floor(Math.random() * 1000) + timestamp;
$(function() {
 $('#file_upload').uploadify({
 'buttonText': '选择文件..',
 'fileObjName': 'simplefile',
 'method': 'post',
 'multi': true,
 'queueID': 'fileQueue',
 //'uploadLimit': 2,
 'fileTypeExts': '*.gif;*.png;*.jpg;*.bmp;*.jpeg;',
 'buttonImage': '/static/js/uploadify/select.png',
 'formData': {
 'timestamp': timestamp,
 'token': token
 },
 'swf': '/static/js/uploadify/uploadify.swf',
 'uploader': '/static/php/UploaderDemo.php',
 'onUploadStart': function() {
 $imgHtml = '<img class="upload_load" src="/static/images/upload.gif" align="absmiddle" />';
 $('#uploadfiles').append($imgHtml);
 },
 'onUploadSuccess': function(file, data, response) {
 $('.upload_load').remove();
 var json = $.parseJSON(data);
 if (json.state == 'success') {
 $imgHtml = '';
 $imgHtml += '<a href="'%20+%20json.file%20+%20'" target="_blank">';
 $imgHtml += '<img src="'%20+%20json.file%20+%20'" width="100" height="100" align="absmiddle"/>';
 $imgHtml += '</a>';
 $imgHtml += '<a href="javascript:uploadifyRemove("'%20+%20json.file%20+%20'")">删除</a>';
 $imgHtml += '';
 $($imgHtml).appendTo('#uploadfiles');
 } else {
 alert(json.message);
 }
 },
 'onQueueComplete': function() {
 $('.upload_load').remove();
 }
 });
}); 
</script>

     说明:它里面有demo  但是是PHP的,还有一个帮助文档:uploadify v2.1.0
Manual.pdf.

[html]
  function upload() 
    { 
       
$(“#fileImg”).uploadify(“settings”,”formData”,{‘JSESSIONID’:’${pageContext.session.id}’}); 
        $(“#fileImg”).uploadify(“upload”); 
    } 

参数说明

2.创建工程:

    function upload()
    {
       
$(“#fileImg”).uploadify(“settings”,”formData”,{‘JSESSIONID’:’${pageContext.session.id}’});
        $(“#fileImg”).uploadify(“upload”);
    }

一、属性
属性名称 默认值 说明
auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。
buttonClass 按钮样式
buttonCursor ‘hand’ 鼠标指针悬停在按钮上的样子
buttonImage null 浏览按钮的图片的路径 。
buttonText ‘SELECT FILES’ 浏览按钮的文本。
checkExisting false 文件上传重复性检查程序,检查即将上传的文件在服务器端是否已存在,存在返回1,不存在返回0
debug false 如果设置为true则表示启用SWFUpload的调试模式
fileObjName ‘Filedata’ 文件上传对象的名称,如果命名为’the_files’,PHP程序可以用$_FILES[‘the_files’]来处理上传的文件对象。
fileSizeLimit 0

上传文件的大小限制 ,如果为整数型则表示以KB为单位的大小,如果是字符串,则可以使用(B, KB, MB, or GB)为单位,比如’2MB’;

如果设置为0则表示无限制

fileTypeDesc ‘All Files’ 这个属性值必须设置fileTypeExts属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileTypeDesc为“请选择rar doc pdf文件”
fileTypeExts ‘*.*’ 设置可以选择的文件的类型,格式如:’*.doc;*.pdf;*.rar’ 。
formData   JSON格式上传每个文件的同时提交到服务器的额外数据,可在’onUploadStart’事件中使用’settings’方法动态设置。
height 30 设置浏览按钮的高度 ,默认值
itemTemplate false 用于设置上传队列的HTML模版,可以使用以下标签:
instanceID – Uploadify实例的ID
fileID – 列队中此文件的ID,或者理解为此任务的ID
fileName – 文件的名称
fileSize – 当前上传文件的大小
插入模版标签时使用格式如:${fileName}
method Post 提交方式Post或Get
multi true 设置为true时可以上传多个文件。
overrideEvents   设置哪些事件可以被重写,JSON格式,如:’overrideEvents’ : [‘onUploadProgress’]
preventCaching true 如果为true,则每次上传文件时自动加上一串随机字符串参数,防止URL缓存影响上传结果
progressData ‘percentage’ 设置上传进度显示方式,percentage显示上传百分比,speed显示上传速度
queueID false 设置上传队列容器DOM元素的ID,如果为false则自动生成一个队列容器。
queueSizeLimit 999 队列最多显示的任务数量,如果选择的文件数量超出此限制,将会出发onSelectError事件。
注意此项并非最大文件上传数量,如果要限制最大上传文件数量,应设置uploadLimit。
removeCompleted true 是否自动将已完成任务从队列中删除,如果设置为false则会一直保留此任务显示。
removeTimeout 3 如果设置了任务完成后自动从队列中移除,则可以规定从完成到被移除的时间间隔。
requeueErrors false 如果设置为true,则单个任务上传失败后将返回错误,并重新加入任务队列上传。
successTimeout 30 文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间
swf ‘uploadify.swf’ uploadify.swf 文件的相对路径。
uploader uploadify.php 后台处理程序的相对路径。
uploadLimit 999 最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件。
width 120 设置文件浏览按钮的宽度。

    结构如图>>

 

二、事件
事件名称 说明
onCancel(file)

当点击文件队列中文件的关闭按钮或点击取消上传时触发,file参数为被取消上传的文件对象

onClearQueue(queueItemCount) 当调用函数cancel方法时触发,queueItemCount参数为被取消上传的文件数量。
onDestroy() 当destory方法被调用时触发
onDialogClose(queueData)

当文件浏览框关闭时触发,如果将此事件被重写,则当向队列添加文件上传出错时不会弹出错误消息提示。

queueData对象包含如下属性:

  • filesSelected 文件选择对话框中共选择了多少个文件
  • filesQueued 已经向队列中添加了多少个文件
  • filesReplaced 已经向队列中替换了多少个文件
  • filesCancelled 取消了多少个文件 filesErrored 出错了多少个文件
onDialogOpen() 当文件选择对话框弹出时立即出发,但可能在文件选择对话框被关闭之前并不能全部执行。
onDisable() 当disable方法禁用Uploadify上传按钮时被调用时触发。
onEnable() 当disable方法启用Uploadify上传按钮时被调用时触发。
onFallback() 当Uploadify初始化过程中检测到当前浏览器不支持flash时触发。
onInit() 首次初始化Uploadify结束时触发。
onQueueComplete(queueData)

文件上传队列处理完毕后触发。

queueData对象包含如下属性:

  • uploadsSuccessful – 上传成功的文件数量
  • uploadsErrored – 上传失败的文件数量
onSelect(file)

选择文件后向队列中添加每个上传任务时都会触发。

onSelectError(file, errorCode, errorMsg)

选择文件后向队列中添加每个上传任务时如果失败都会触发。

file – 文件对象

errorCode – 错误代码如下:

  • QUEUE_LIMIT_EXCEEDED – 任务数量超出队列限制;
  • FILE_EXCEEDS_SIZE_LIMIT – 文件大小超出限制;
  • ZERO_BYTE_FILE – 文件大小为0
  • INVALID_FILETYPE – 文件类型不符合要求

errorMsg – 错误提示,可通过’this.queueData.errorMsg’定制

onSWFReady() Flash文件载入成功后触发。
onUploadComplete(file) 每个文件上传完毕后无论成功与否都会触发。
onUploadError(file, errorCode, errorMsg, errorString) 文件上传出错时触发,参数由服务端程序返回。
onUploadProgress(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal)

处理上传队列的过程中会多次触发此事件,每当任务状态有更新时都会触发。

  • file – 文件对象
  • bytesUploaded – 已上传的字节数
  • bytesTotal – 文件总字节数
  • totalBytesUploaded – 当前任务队列中全部文件已上传的总字节数
  • totalBytesTotal – 当前任务队列中全部文件的总字节数
onUploadStart(file) 当文件即将开始上传时立即触发
onUploadSuccess(file, data, response)

当文件上传成功时触发

  • file – 文件对象
  • data – 服务端输出返回的信息

response – 有输出时为true,如果无响应为false,如果返回的是false,当超过successTimeout设置的时间后假定为true

    图片 2

[html] input type=file
name=fileImg id= fileImg / div id=fileQueue /div a
href=javascript:upload() class=easyui-linkbutton id=btn_save 上传…/
a inp…

三、方法
方法名称 说明 应用举例
cancel(fileID, suppressEvent)

取消队列中的任务,不管此任务是否已经开始上传

  • fileID – 要取消的文件ID,如果为空则取消队列中第一个任务,如果为’*’则取消所有任务
  • suppressEvent – 是否阻止触发onUploadCancel事件,当清空队列时非常实用。
  1. <ahref="javascript:$(‘#file_upload’).uploadify(‘cancel’)">
  2. 取消第一个</a>
  3. <a
  4. href="javascript:$(‘#file_upload’).uploadify(‘cancel’,
  5. ‘*’)">清空队列</a>
  6. <a
  7. href="javascript:$(‘#file_upload’).uploadify(‘upload’,
  8. ‘*’)">开始上传所有任务</a>
destroy() 销毁Uploadify实例并将文件上传按钮恢复到原始状态
  1. <a
  2. href="javascript:$(‘#file_upload’).uploadify(‘destroy’)">
  3. 销毁Uploadify实例</a>
disable(setDisabled)

禁用或启用文件浏览按钮

setDisabled – 设置为true表示禁用,false为启用

  1. <a
  2. href="javascript:$(‘#file_upload’).uploadify(‘disable’,
  3. true)">禁用按钮</a>
  4. <a
  5. href="javascript:$(‘#file_upload’).uploadify(‘disable’,
  6. false)">启用按钮</a>
settings(name, value, resetObjects)

获取或设置Uploadify实例参数

  • name – 属性名称,如果只提供属性名称则表示获取其值
  • value – 属性值
  • resetObjects – 设置为true时,更新postData对象将清空现有的值。否则,新的值将被添加到其末尾。
  1. $(‘#file_upload’).uploadify(‘settings’,’buttonText’,’BROWSE’);
  2. $(‘#file_upload’).uploadify(‘settings’,’buttonText’));
stop() 停止当前正在上传的任务
  1. <a
  2. href="javascript:$(‘#file_upload’).uploadify(‘upload’,
  3. ‘*’)">开始上传</a>
  4. <a
  5. href="javascript:$(‘#file_upload’).uploadify(‘stop’)">
  6. 停止上传</a>
upload(fileID) 立即上传指定的文件,如果fileID为’*’表示上传所有文件,要指定上传多个文件,则将每个文件的fileID作为一个参数
  1. <a
  2. href="javascript:$(‘#file_upload’).uploadify(‘upload’,’*’)">
  3. 开始上传所有文</a>

    文件说明:

文件UploaderDemo.php下载

    
A.js文件夹下的所有文件:必需,从下载下来的包里解压复制过来,名字可以自己改改

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

   B.Default.aspx:测试页,后台没有代码

您可能感兴趣的文章:

  • Javascript使用uploadify来实现多文件上传
  • uploadify
    java实现多文件上传和预览
  • jQuery.uploadify文件上传组件实例讲解
  • jQuery文件上传控件 Uploadify
    详解
  • ASP.NET多文件上传控件Uploadify的使用方法
  • ASP.NET文件上传控件Uploadify的使用方法
  • uploadify多文件上传参数设置技巧
  • php+jQuery.uploadify实现文件上传教程
  • jQuery文件上传插件Uploadify使用指南
  • JavaScript
    Uploadify文件上传实例

复制代码 代码如下:

<%@ Page Language=”C#” AutoEventWireup=”true”
Codebehind=”Default.aspx.cs” Inherits=”WebApplication2._Default”
%>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head runat=”server”>
<title>jquery.uploadify 上传插件的使用</title>
<link rel=”Stylesheet” href=”js/uploadify.css” />
<script type=”text/javascript”
src=”js/jquery.min.js”></script>
<script type=”text/javascript”
src=”js/swfobject.js”></script>
<script type=”text/javascript”
src=”js/jquery.uploadify.min.js”></script>
<script type=”text/javascript”>
$(document).ready(function() {
$(“#uploadify”).uploadify({
‘uploader’: ‘js/uploadify.swf’,
‘script’: ‘Upload.aspx’,
‘cancelImg’: ‘js/cancel.png’,
‘folder’: ‘upload’,
‘queueID’: ‘fileQueue’,
‘auto’: false,
‘multi’: true,
});
});
</script>
</head>
<body>
<form id=”form1″ runat=”server”>
<input type=”file” name=”uploadify” id=”uploadify” />
<a
href=”javascript:$(‘#uploadify’).uploadifyUpload()”>上传</a>|
<a href=”javascript:$(‘#uploadify’).uploadifyClearQueue()”>
取消上传</a>
<div id=”fileQueue”></div>
</form>
</body>
</html>

C.Upload.aspx: 处理上传文件

复制代码 代码如下:

<%@ Page Language=”C#” AutoEventWireup=”true”
CodeBehind=”Upload.aspx.cs” Inherits=”WebApplication2.Upload” %>

代码

复制代码 代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
namespace WebApplication2
{
public partial class Upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpPostedFile file = Request.Files[“FileData”];
string uploadpath = Server.MapPath(Request[“folder”] + “\\”);
if (file != null)
{
if (!Directory.Exists(uploadpath))
{
Directory.CreateDirectory(uploadpath);
}
file.SaveAs(uploadpath + file.FileName);
Response.Write(“1”);
}
else
{
Response.Write(“0”);
}
}
}
}

D.upload这个文件加也是必需
3.运行结果:

   图片 3

4.最后说说:这个只是一个简单的入门例子,至于界面可以根据自己的需要去改

您可能感兴趣的文章:

  • asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法
  • asp.net
    fileupload控件上传文件与多文件上传
  • asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
  • asp.net
    MVC实现无组件上传图片实例介绍
  • asp.net
    多文件上传,兼容IE6/7/8,提供完整代码下载
  • Asp.net实现MVC处理文件的上传下载功能实例教程
  • asp.net图片上传实例
  • Asp.Net
    无刷新文件上传并显示进度条的实现方法及思路
  • asp.net下文件上传和文件删除的代码
  • ASP.NET MVC
    Webuploader实现上传功能

相关文章