多线程上传文件,客户端http协议上传文件,客户端webserver上传文件,分割上传到服务器,模拟百度网盘文件上传
客户端文件续传上传到服务端,客户端http协议上传文件,客户端webserver上传文件,客户端续传,分割上传到服务器,模拟百度网盘文件上传
由于项目的需要一个客户端用来上传文件的,所以今天做了一个简单的例子
删除指定文件C#
操作本地的小软件,提供文件名,文件路劲,它可以自动帮你删除不要的文件
我是基于在开发的时候所用到的源代码管理,它自动生成一个.scc的文件,所以才做了一个小软件,现在分享给大家,
JeasyUI的Draggable使用,JeasyUI的DataGrid数据提交,购物车的使用,拖拽产品加入购物车内,json转对象
从JeasyUI出下载demo后获得easyui文件夹,把它加到项目中去,建立好Image文件夹,因为要用到图片,也要建立jsonbyfzl.js,因为要把dataGrid的数据转成json,所以需要用到它 即var data =JSON.stringify(Rows);。备注:jsonbyfzl.js是本人自己写的,内容其实就是json2.js文件里面的内容。因有些浏览器会过滤json2所以自己建立了一个js文件
好,我们首先来看下效果先
我们来看一下代码,看它是怎么实现的吧
首先看一下html页面
jeasyui的dataGrid的打印和导出,jeasyui报表 table转成excel 实例下载
如题,项目要用到jeasyui,所以必须要下载它的demo,获取相应的js,css等等的文件
jeasyui的下载地址:http://www.jeasyui.com/download/index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" />
<link href="easyui/demo.css" rel="stylesheet" type="text/css" />
<script src="easyui/jquery.min.js" type="text/javascript"></script>
<script src="easyui/jquery.easyui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#tab").datagrid({
// width: 600, //宽度
height: 400, //高度
singleSelect: true, //选中一行的设置
fitColumns:true,
url: "EditorUserHandler.ashx", //请求路径
title: "用户信息", //标题
iconCls: "icon-add", //图标
// collapsible: true, //隐藏按钮
//冻结列
// frozenColumns: [[{ field: "chk", "checkbox": true}]], //复选框
//列
rownumbers: false,
//传输参数
queryParams: { "action": "query" },
pagination: true,
toolbar: "#tool"
});
$("#tab").datagrid('getPager').pagination({
beforePageText: "第",
afterPageText: "页",
displayMsg: "当前 {from} - {to}条数据 共{total} 条数据",
pageSize: 10,
pageList: [5, 10, 15, 20, 30]
});
})
</script>
<!--//打印-->
<script type="text/javascript">
function CreateFormPage(strPrintName, printDatagrid) {
var tableString = '<div><table width="100%"><tr style="text-align:center;"><td colspan="2" style="font-size:24px; font-weight:bold;"><span style="text-decoration:underline;"> </span>年<span style="text-decoration:underline;"> </span>半年广东省房屋市政工程安全生产文明施工示范工地申报项目汇总表</td></tr><tr><td style="text-align:left;">地区(部门)公 章: </td><td style="text-align:right;">报送时间: 年 月 日</td></tr></table> <table cellspacing="0" class="pb">';
var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象
var columns = printDatagrid.datagrid("options").columns; // 得到columns对象
var nameList = '';
// 载入title
if (typeof columns != 'undefined' && columns != '') {
$(columns).each(function (index) {
tableString += '\n<tr>';
if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
for (var i = 0; i < frozenColumns[index].length; ++i) {
if (!frozenColumns[index][i].hidden) {
tableString += '\n<th width="' + frozenColumns[index][i].width + '"';
if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
}
if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
}
if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
nameList += ',{"f":"' + frozenColumns[index][i].field + '", "a":"' + frozenColumns[index][i].align + '"}';
}
tableString += '>' + frozenColumns[0][i].title + '</th>';
}
}
}
for (var i = 0; i < columns[index].length; ++i) {
if (!columns[index][i].hidden) {
tableString += '\n<th width="' + columns[index][i].width + '"';
if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
tableString += ' rowspan="' + columns[index][i].rowspan + '"';
}
if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
tableString += ' colspan="' + columns[index][i].colspan + '"';
}
if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
nameList += ',{"f":"' + columns[index][i].field + '", "a":"' + columns[index][i].align + '"}';
}
tableString += '>' + columns[index][i].title + '</th>';
}
}
tableString += '\n</tr>';
});
}
// 载入内容
var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
var nl = eval('([' + nameList.substring(1) + '])');
for (var i = 0; i < rows.length; ++i) {
tableString += '\n<tr>';
$(nl).each(function (j) {
var e = nl[j].f.lastIndexOf('_0');
tableString += '\n<td';
if (nl[j].a != 'undefined' && nl[j].a != '') {
tableString += ' style="text-align:' + nl[j].a + ';"';
}
tableString += '>';
if (e + 2 == nl[j].f.length) {
tableString += rows[i][nl[j].f.substring(0, e)];
}
else
tableString += rows[i][nl[j].f];
tableString += '</td>';
});
tableString += '\n</tr>';
}
tableString += '\n</table></div>';
window.showModalDialog("/print.htm", tableString,
"location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;");
}
</script>
<!--//导出-->
<script type="text/javascript">
function ChangeToTable(printDatagrid) {
var tableString = '<table cellspacing="0" class="pb">';
var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象
var columns = printDatagrid.datagrid("options").columns; // 得到columns对象
var nameList = new Array();
// 载入title
if (typeof columns != 'undefined' && columns != '') {
$(columns).each(function (index) {
tableString += '\n<tr>';
if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {
for (var i = 0; i < frozenColumns[index].length; ++i) {
if (!frozenColumns[index][i].hidden) {
tableString += '\n<th width="' + frozenColumns[index][i].width + '"';
if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {
tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';
}
if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {
tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';
}
if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {
nameList.push(frozenColumns[index][i]);
}
tableString += '>' + frozenColumns[0][i].title + '</th>';
}
}
}
for (var i = 0; i < columns[index].length; ++i) {
if (!columns[index][i].hidden) {
tableString += '\n<th width="' + columns[index][i].width + '"';
if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {
tableString += ' rowspan="' + columns[index][i].rowspan + '"';
}
if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {
tableString += ' colspan="' + columns[index][i].colspan + '"';
}
if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {
nameList.push(columns[index][i]);
}
tableString += '>' + columns[index][i].title + '</th>';
}
}
tableString += '\n</tr>';
});
}
// 载入内容
var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行
for (var i = 0; i < rows.length; ++i) {
tableString += '\n<tr>';
for (var j = 0; j < nameList.length; ++j) {
var e = nameList[j].field.lastIndexOf('_0');
tableString += '\n<td';
if (nameList[j].align != 'undefined' && nameList[j].align != '') {
tableString += ' style="text-align:' + nameList[j].align + ';"';
}
tableString += '>';
if (e + 2 == nameList[j].field.length) {
tableString += rows[i][nameList[j].field.substring(0, e)];
}
else
tableString += rows[i][nameList[j].field];
tableString += '</td>';
}
tableString += '\n</tr>';
}
tableString += '\n</table>';
return tableString;
}
function Export(strXlsName, exportGrid) {
var f = $('<form action="export.aspx" method="post" id="fm1"></form>');
var i = $('<input type="hidden" id="txtContent" name="txtContent" />');
var l = $('<input type="hidden" id="txtName" name="txtName" />');
i.val(ChangeToTable(exportGrid));
i.appendTo(f);
l.val(strXlsName);
l.appendTo(f);
f.appendTo(document.body).submit();
try {
document.body.removeChild(f);
} catch (e) { }
}
</script>
</head>
<body>
<a href="javascript:void(0);" onclick="CreateFormPage('打印测试', $('#tab'));">打印</a>
<a href="javascript:void(0);" onclick="Export('导出excel', $('#tab'));">导出</a>
<table id="tab">
<thead>
<tr>
<th data-options="field:'flid',width:80" rowspan="2">编号</th>
<th data-options="field:'flname',width:100" rowspan="2">姓名</th>
<th colspan="3">详细信息</th>
<th colspan="2">登录信息</th>
</tr>
<tr>
<th data-options="field:'fladdress',width:80,align:'right'">地址</th>
<th data-options="field:'flphone',width:80,align:'right'">电话</th>
<th data-options="field:'flemail',width:240">邮箱</th>
<th data-options="field:'flloginname',width:60,align:'center'">登录名</th>
<th data-options="field:'flloginpwd',width:60,align:'center'">密码</th>
</tr>
</thead></table>
<div id="tool">
<table border="0" cellspacing="0" cellpadding="0" width="100%" class="easyui-datagrid">
<!--<tr>
<td style=" padding-left:2px">
<a href="#" class="easyui-linkbutton" id="id_add" iconcls="icon-add" plain="true" onclick="add_dg();" >添加</a>
<a href="#" class="easyui-linkbutton" id="id_edit" iconCls="icon-edit" plain="true" onclick="edit_dg();">修改</a>
<a href="#" class="easyui-linkbutton" id="id_cancel " onclick="delete_dg();" iconcls="icon-cancel" plain="true">删除</a>
</td>
</tr>-->
</table>
</div>
<br />
<div id="dd_dg" style=" display:none">
<form id="fm_dg">
编号:<input id="flid" name="flid" class="easyui-numberbox" type="text" required="true" missingMessage="请输入编号" />
<br />
姓名:<input id="flname" name="flname" class="easyui-validatebox" required="true" missingMessage="请输入姓名"/>
<br />
地址:<input id="fladdress" name="fladdress" class="easyui-validatebox" type="text" required="true" missingMessage="请输入地址" />
<br />
电话:<input id="flphone" name="flphone" class="easyui-validatebox" type="text" required="true" missingMessage="请输入电话" />
<br />
邮箱:<input id="flMail" name="flMail" class="easyui-validatebox" type="text" validType="email" required="true" missingMessage="请输入邮箱" />
<br />
登录名:<input id="flloginname" name="flloginname" class="easyui-validatebox" type="text" required="true" missingMessage="请输入登录名" />
<br />
密码:<input type="password" id="flloginpwd" name="flloginpwd" class="easyui-validatebox" required="true" missingMessage="请输入密码" />
<br />
</form>
</div>
</body>
</html>
uploadify大文件多文件上传在asp.net的使用,修改删除的bug和覆盖bug包括IIS配置
最近项目需要用到上传功能,上传功能要与邮箱里面的 添加附件 功能 一样,思来想去,最终确定用uploadify插件去做。好了,下面将详细讲解如何使用uploadify
uploadify 其中有一个bug是,已经上传完成的文件,点击取消上传后,后台是不会跑去删除已经上传的文件的,它没有调用oncancel事件,这部分只能自己去写代码实现删除,下面会讲到这一块。我们先建立好一些普通的功能先。
好了,运行后看看效果,是不是如你所愿,上传完之后进行删除,后台也照样能删除。
下面来说一下uploadify 的第二个bug吧
就是你选择a,b,c文件上传,然后点击删除按钮进行删除,删除后再上传a,b,c它就会提示你说是否要替换文件。按道理来说根本就不需要这样的
好了,下面来做js文件的修改吧,还是修改jquery.uploadify.min.js
asp.net发送邮件,使用MD5加密解密,实现用户注册完成后发送流水号(账号)到对方邮箱,jeasyUI验证,combobox的使用完成 实例下载
最近项目用到用户注册后要发流水号给对方邮箱接收,然后在用流水号登录系统,类似QQ一样,生成个流水号。注册的时候要求密码是要加密的,所以也用到了加密技术MD5。
项目也用到了一些JeasyUI这个控件。所以控件要在官网下载,下载地址是:http://jeasyui.com/download/index.php
下载完成后,把项目放进我们的项目中我们看一下数据库的表结构吧,没事我会提供下载链接的,里面包含数据库,我们先看看表吧
我们首先来看下 html文件
我们来看下处理文件Registration.ashx
里面包含了加密,和生成流水号(当前年度+地区号+流水号(0001)递增),还有发送邮件.其中有些公共的方法是在CommonHepler
还有一个DBHepler类这里就不提供了(内容有点多)
我们来看下选择框吧
选择框查询需要提交到SelectComboboxArea.ashx
我们来看下SelectComboboxArea.ashx,这里需要把数据转成json数据