一、页面的构建

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 文件上传组件的使用的更多相关文章

  1. jQuery.uploadify文件上传组件实例讲解

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  2. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  3. vue大文件上传组件选哪个好?

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  4. Atitit..文件上传组件选型and最佳实践总结(2)----断点续传

    Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定 ...

  5. Atitit..文件上传组件选择and最佳实践的总结(2)----HTTP

    Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 怎样推断一个插件/控件是否支持断点续传?? 1 3. 经常使用的组件选型结果::马 1 4.  ...

  6. Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现

    Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现 1. 实现思路:::元插件,元设置... 1 2. 实现流程downzip,unzip,exec 1 3. Zip  ...

  7. Struts2+Uploadify文件上传使用详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...

  8. 异步文件上传组件 Uploader

    Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...

  9. 多文件上传组件FineUploader使用心得

    原文 多文件上传组件FineUploader使用心得 做Web开发的童鞋都知道,需要经常从客户端上传文件到服务端,当然,你可以使用<input type="file"/> ...

随机推荐

  1. 指针和动态分配内存 (不定长度数组)------新标准c++程序设计

    背景: 数组的长度是定义好的,在整个程序中固定不变.c++不允许定义元素个数不确定的数组.例如: int n; int a[n]; //这种定义是不允许的 但是在实际编程中,往往会出现要处理的数据数量 ...

  2. Kotlin 函数

    至于什么函数,在计算机里面就是一个密闭的执行程序的代码块(个人理解) 我们先来看看什么是函数 fun main(agrs : Array<String>) { println(" ...

  3. Mysql高性能优化规范建议

    数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意 ...

  4. 【bzoj4869】[Shoi2017]相逢是问候 线段树+扩展欧拉定理

    Description Informatikverbindetdichundmich. 信息将你我连结.B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以 分为两 ...

  5. Python3之shutil模块

    一. 简介 shutil 是高级的文件,文件夹,压缩包处理模块. 二. 使用 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 import ...

  6. js 简单数据类型和复杂数据类型的区别

    原始数据类型: number,string,boolean,undefined, null,object 基本类型(简单类型),值类型: number,string,boolean 复杂类型(引用类型 ...

  7. java 的在线下载文件 .pdf

    java  的在线下载文件  .pdf 1.下载资源的本地位置 2.设置响应头 3.下载代码 1 PeriodicalResource periodicalResource = periodicalR ...

  8. PHP 位运算符

    位运算符 位运算符是指对二进制位从低位到高位对齐后进行运算. 符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | $n 全0为0,有1为1 ...

  9. C++_标准模板库STL概念介绍2-泛型编程

    有了之前使用STL的经验后,接下来讨论泛型编程及其底层的理念: 首先我们知道STL只是泛型编程的一种: 而面向对象的编程方式关注的是编程的数据方面: 而泛型编程关注的是算法: 但是,他们之间的一个重要 ...

  10. 关于去掉输入一定数字n,在n后写入n个字符串的问题

    在输入数字n后要用一个getchar 去吃掉数字n后面跟着的回车符号,从而保证输入的字符串数是和n是保持一致的 具体实例代码如下: #include<stdio.h> #include&l ...