微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery插件uploadify实现带进度条的文件批量上传

有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案,分享给大家供大家参考,具体如下

先上效果图:

具体代码如下:

页面中如下

完整页面代码

rush:xhtml;"> <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"&gt;
<head runat="server">
<Meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>批量<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>Demo

<script type="text/javascript">
$(function () {
var guid = '<%=Request["guid"] %>';
var type = '<%=Request["type"] %>';
if (guid == null || guid == "") {
guid = newGuid();
}
if (type != null) {
type = type + '/';
}

$('#file_upload').uploadify({
'swf': 'uploadify/uploadify.swf',//FLash文件路径
'buttonText': '浏 览',//按钮文本
'uploader': 'uploadhandler.ashx?guid=' + guid,//处理ASHX页面
'formData': { 'folder': 'picture','isCover': 1 },//传参数
'queueID': 'fileQueue',//队列的ID
'queueSizeLimit': 10,//队列最多可上传文件数量认为999
'auto': false,//选择文件后是否自动上传认为true
'multi': true,//是否为多选,认为true
'removeCompleted': true,//是否完成后移除序列,认为true
'fileSizeLimit': '0',//单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值
'fileTypeDesc': 'All Files',//文件描述
'fileTypeExts': '.',//上传文件后缀过滤器
'onQueueComplete': function (queueData) { //所有队列完成后事件
alert("上传完毕!");
},'onError': function (event,queueId,fileObj,errorObj) {
alert(errorObj.type + ":" + errorObj.info);
},'onUploadStart': function (file) {
},'onUploadSuccess': function (file,data,response) { //一个文件上传成功后的响应事件处理
//var data = $.parseJSON(data);//如果data是json格式
//var errMsg = "";
}

});
});

function newGuid() {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
guid += "-";
}
return guid;
}

//执行上传
function doUpload() {
$('#file_upload').uploadify('upload','*');
}

<input type="button" class="shortbutton" id="btnCancelUpload" onclick="$('#file_upload').uploadify('cancel')" value="取消" />

UploadHandler.ashx代码

public class UploadHandler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Request.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
context.Response.Charset = "UTF-8";

if (context.Request.Files.Count > 0)
{

region 获取上传路径

string uploadFolder = GetUploadFolder();

endregion

if (System.IO.Directory.Exists(uploadFolder))
{//如果上传路径存在
HttpPostedFile file = context.Request.Files["Filedata"];
string filePath = Path.Combine(uploadFolder,file.FileName);
file.SaveAs(filePath);
context.Response.Write("0");
}
else
{
context.Response.Write("2");
}
}
}

public bool IsReusable {
get {
return false;
}
}

///


/// 返回不带后缀的文件
///

/// <param name="fileName">
///
public static string GetFirstFileName(string fileName)
{
return Path.GetFileNameWithoutExtension(fileName);
}

///


/// 获取上传目录
///

///
public static string GetUploadFolder()
{
string rootPath = HttpContext.Current.Server.MapPath("~");
return Path.Combine(rootPath,"test");
}

}

文件上传.NET认有大小限制,像IIS限制的30M认请求大小。如果不想修改IIS,又想突破这个大小的限制,比如上传1GB大小的文件

这是修改Web.config即可实现。

rush:xml;">

希望本文所述对大家学习javascript程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐