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"/> ...
随机推荐
- 20165219 2017-2018-2 《Java程序设计》第7周学习总结
20165219 2017-2018-2 <Java程序设计>第7周学习总结 课本知识总结 第11章 JDBC与MySQL数据库 连接数据库 1下载JDBC-MySQL数据库驱动 2 加载 ...
- Sqoop 遇到的问题
1. 想用 sqoop 增量的方式导入到 hive.运行下面的命令: sqoop import --connect jdbc:mysql://192.168.7.159:3306/test --u ...
- bzoj 3864: Hero meet devil(dp套dp)
题面 给你一个只由\(AGCT\)组成的字符串\(S (|S| ≤ 15)\),对于每个\(0 ≤ .. ≤ |S|\),问 有多少个只由\(AGCT\)组成的长度为\(m(1 ≤ m ≤ 1000) ...
- [Swift]八大排序算法(二):快速排序
排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...
- Samba服务为例、简单了解
先.关掉SElinux.防火墙. ---------------------------- 安装rpm包(主): samba-3.6.9-164.el6.x86_64.rpm 启动检测:samba服务 ...
- Python3之shutil模块
一. 简介 shutil 是高级的文件,文件夹,压缩包处理模块. 二. 使用 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 import ...
- Ajax轮询 select循环输出
弹出层 <include file="Pub:header"/> <style> .del{color:red} .addname{color:#337ab ...
- Java ExecutorService 四种线程池
1.new Thread的弊端 new Thead(new Runnable(){ @Override public void run() { // TODO Auto-generated metho ...
- python 获得毫秒级时间戳
import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 print (int(round ...
- svn学习笔记(二)
一.TortoiseSVN日常使用 1.1 浏览仓库 Repo-browser : 浏览仓库中资源信息 1.2 导入导出 Export :导出项目 ,和checkout区别 (checkout检出后文 ...