C# Uploadify 文件上传组件的使用
一、页面的构建
1、要引用的JS和CSS
<link href="../css/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="../js/jquery-ui.js" type="text/javascript"></script>
<script src="../js/chosen.jquery.min.js" type="text/javascript"></script>
<link href="../css/uploadify.css" rel="stylesheet" type="text/css" />
<script src="../js/swfobject.js" type="text/javascript"></script>
<script src="../js/jquery.uploadify.v2.1.4.min.js" type="text/javascript"></script>
2、页面上的div容器,这里我是作为表格的一行
<tr id="attachment">
<td>上传附件:</td>
<td style="text-align: left">
<div id='fileDiv'>
</div>
<div class='uploadifyDiv'>
<div id="fileQueue">
</div>
<input type="file" name="uploadify" id="uploadify" />
<span class="inputMesg">考察和培训必须上传备案表</span>
</div>
</td>
</tr>
3、在js的入口初始化这个组件
$(function () {
            initUploadify("uploadify", "fileQueue");
        });
function initUploadify(id, queryId) {
            $("#" + id).uploadify({
                'uploader': '../js/uploadify.swf',
                'script': '../UploadHandler.ashx',
                'cancelImg': '../images/cancel.png',
                'folder': planUrl + new Date().getFullYear().toString(),
                'queueID': queryId,
                'auto': true,
                'multi': false,
                'buttonText': escape('select....'),
                'buttonImg': '../images/upload.png',
                'wmode': 'transparent',
                'fileSizeLimit': ,
                'removeCompleted': false,
                'onUploadError': function (event, queueID, fileObj) {
                    alert("文件:" + fileObj.name + "上传失败");
                },
                'onComplete': function (event, queueID, fileObj, response, data) {
                    //上传成功执行
                    if (response != "") {
                        $("#<%=hfFiles.ClientID %>").val(response);
                        //ShowFiles($j("#fileDiv2"), queueID, eaUrl + new Date().getFullYear().toString());
                    }
                }
            });
        }
4、显示已上传的文件,并给每个文件增加删除操作
function ShowFiles(div, files, dir, id) {
            //eaUrl = ".." + eaUrl.substring(1);
            var html;
            var year = dir;
            var path = planUrl + dir;
            html ='<table style="border: 1px; text-align:left; width: 95%; height: 10%; ">';
            html += '<tr style="border: solid 1px #e8eef4;  background-color:#def2fb"><td style ="width:200px;">文件名</td><td  style ="width:80px;">操作</td></tr >';
            var fileArry = files.split('|');
            for (var i = ; i < fileArry.length; i++) {
                if (fileArry[i] == "")
                    continue;
                var filename = fileArry[i];
                html += '<tr><td><a style="white-space:nowrap;"  href="' + encodeURI(path + '/' + fileArry[i]) + '" target="_blank" >' + fileArry[i] + '</a></td> <td><a href="#" target="_self" id="file_' + i + '"> 删除</a></td></tr>';
            }
            html += '</table>';
            div.html(html);
            for (var i = ; i < fileArry.length; i++) {
                if (fileArry[i] == "")
                    continue;
                var filename = fileArry[i];
                var fileId = i;
                $j("#file_" + fileId).click(function () {
                    deleteFile(id, filename, path, div[].id);
                });
            }
        }
5、删除文件
 function deleteFile(id, fileName, dir, divId) {
            var rep = confirm("您确定要删除(" + fileName.substr(, fileName.length - ) + ")文件吗?");
            if (rep) {
                var deleteFile =OilDigital.CGGL.Web.PlanProcess.DeletePlanPersonFile(id, fileName, dir);
                if (deleteFile.error != null) {
                    alert(deleteFile.error.Message);
                    return;
                }
                <%--                $j("#<%=hfFiles.ClientID %>").val("");
                $j("#" + divId + "").html("");
                ShowFiles($j("#" + divId + ""), files.value, dir, id);--%>
                $j("#<%=hfFiles.ClientID %>").val("");
                $j(".uploadifyDiv").show();
                $j("#fileDiv").hide();
            }
        }
注意:以上的过程我在实施过程中遇到几个问题
1、删除文件的方法无法调用,循环增加的click方法无效,试试下面这样增加click方法吧
html += '<tr><td><a style="white-space:nowrap;" href="' + encodeURI(path + '/' + fileArry[i]) + '" target="_blank" >' + fileArry[i] + '</a></td> <td><a href="#" target="_self" id="file_' + i + '" onclick="deleteFile(\'' + id + '\',\'' + filename + '\',\'' + path + '\',\'' + div[].id + '\')"> 删除</a></td></tr>';
2、如果这个上传控件是在模态窗口中打开的那上传路径'script': '../UploadHandler.ashx'是有问题的,我建议不用模态窗口,用window.open或者是jquery的对话窗
C# Uploadify 文件上传组件的使用的更多相关文章
- jQuery.uploadify文件上传组件实例讲解
		1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ... 
- jquery.uploadify文件上传组件
		1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ... 
- vue大文件上传组件选哪个好?
		需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ... 
- Atitit..文件上传组件选型and最佳实践总结(2)----断点续传
		Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定 ... 
- Atitit..文件上传组件选择and最佳实践的总结(2)----HTTP
		Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 怎样推断一个插件/控件是否支持断点续传?? 1 3. 经常使用的组件选型结果::马 1 4. ... 
- Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现
		Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现 1. 实现思路:::元插件,元设置... 1 2. 实现流程downzip,unzip,exec 1 3. Zip ... 
- Struts2+Uploadify文件上传使用详解
		Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ... 
- 异步文件上传组件 Uploader
		Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ... 
- 多文件上传组件FineUploader使用心得
		原文 多文件上传组件FineUploader使用心得 做Web开发的童鞋都知道,需要经常从客户端上传文件到服务端,当然,你可以使用<input type="file"/> ... 
随机推荐
- MultiDataTrigger
			MultiDataTrigger是多条件数据触发器 和MltiTrigger是同样的,只不过前者是数据,后者是属性. 这个是基本的使用语法 <MultiDataTrigger> <M ... 
- ubuntu14.10,解决按照最新版Gnome 15.10后,经典Gnome桌面字体问题!
			ubuntu14.10刚安装完毕,我首先按照了经典Gnome桌面,随后我发现ubuntu软件中心里面能找到的软件明显不如先前我安装过的ubuntu了,我觉得有可能是因为我以前安装的ubuntu14.1 ... 
- winform未能加载Interop.WMPLib
			找到这个引用,然后移除既即可以 
- 190320运算符&数据类型
			一.运算符 1.算术运算符 + 加 - 减 * 乘 / 除 ** 平方 // 整除 % 取余 2.比较运算符 == 等于 > 大于 < 小于 <= 小于等于 >= 大于等于 ! ... 
- SDUT OJ 数据结构实验之二叉树二:遍历二叉树
			数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ... 
- ubuntu下的pycharm4中文路径乱码
			修改字体: 设置(settings)->外观与行为(appearance & behavior) -> 外观(appearance) ->我选择的主题是Darcula 但其字 ... 
- jquery 中 $('div','li')是什么意思?
			Javascript 专业回答 2013-07-18 10:59 这个写法没有错误,而且那个人跟你说的也没错,是选择li里面所有div 前面几位都学艺不精,都说错了 要搞清楚$('div','l ... 
- String Reduction问题分析
			问题描述: Given a string consisting of a,b and c's, we can perform the following operation: Take any two ... 
- Android 程序调试技巧汇总
			1.Android Studio 引入一个项目作为library https://www.cnblogs.com/lixiangyang521/p/7453322.html 2.Android Stu ... 
- A Simple Math Problem(矩阵快速幂)----------------------蓝桥备战系列
			Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 f(x) = a0 ... 
