前台代码:

    <div class="tab-content">
<dl>
<dt>所属栏目</dt>
<dd>
<div class="rule-single-select">
<select id="ddlCategoryId">
<option value="">所有栏目</option>
</select>
</div>
</dd>
</dl>
<dl>
<dt>推荐类型</dt>
<dd>
<div class="rule-multi-checkbox">
<span id="checkboxs">
<input type="checkbox" class="checked" id="PL" /><label>允许评论</label><input type="checkbox"
class="checked" id="ZD" /><label>置顶</label><input type="checkbox" class="checked"
id="TJ" /><label>推荐</label><input type="checkbox" class="checked" id="JY" /><label>只限局域网访问</label></span>
</div>
</dd>
</dl>
<dl>
<dt>文章标题</dt>
<dd>
<asp:TextBox ID="txtTitle" runat="server" CssClass="input normal" datatype="*2-100"
sucmsg=" " />
<span class="Validform_checktip">*标题最多100个字符</span>
</dd>
</dl>
<dl>
<dt>发布时间</dt>
<dd>
<div class="input-date">
<asp:TextBox ID="txtAddTime" runat="server" CssClass="input date" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
datatype="/^\s*$|^\d{4}\-\d{1,2}\-\d{1,2}\s{1}(\d{1,2}:){2}\d{1,2}$/" errormsg="请选择正确的日期"
sucmsg=" " />
<i>日期</i>
</div>
<span class="Validform_checktip">不选择默认当前发布时间</span>
</dd>
</dl>
<dl>
<dt>分享到上级单位</dt>
<dd>
<a class="clickShow hover checkBoxBtn" href="javascript:void(0);" title="">选择单位</a><span
class="Validform_checktip">说明:[新闻将分享到所勾选的单位(显示在接入单位信息公开新闻栏目中]</span>
<div class="artShare_CheckBox">
<label class="artShare_checkAll">
<input type="checkbox" name="checkAll" /><span class="text">全选</span></label>
<ul class="artShare_List unitlist clearfix">
</ul>
</div>
</dd>
</dl>
<dl>
<dt>转发到其它栏目</dt>
<dd>
<a class="clickShow hover checkBoxBtn" href="javascript:void(0);" title="">选择栏目</a><span
class="Validform_checktip">说明:[可在其他栏目中展示该新闻,可直接放置于一级栏目下]</span>
<div class="artShare_CheckBox">
<label class="artShare_checkAll">
<input type="checkbox" name="checkAll" /><span class="text">全选</span></label>
<ul class="artShare_leaveOneList">
</ul>
</div>
</dd>
</dl>
</div>
<div class="tab-content" style="display: none">
<dl>
<dt>链接类型</dt>
<dd>
<div class="single-select">
<div class="boxwrap">
<a class="select-tit" href="javascript:;"><span>本文页面</span><i></i></a>
<div class="select-items artEdit_urlTypeBox">
<ul>
<li class="selected" data-id="">本文页面</li>
<li data-id="">其他页面</li>
<li data-id="">文件地址</li>
</ul>
</div>
<i class="arrow"></i>
</div>
</div>
<span class="articleURL_input" style="display: none;">
<input type="text" id="txtCallIndex" class="input normal" />
<span class="Validform_checktip">*别名访问,非必填,不可重复</span></span><span class="articleUpload"><input type="file" class="file1" name="file1"/></span> <span class="Validform_checktip">
说明:[.本文页面:点击标题在详情页面查看内容;.其他页面:点击标题打开的是链接页面;.文件地址:点击标题直接下载文件]</span>
</dd>
</dl>
<dl>
<dt>封面图片</dt>
<dd>
<span><input type="file" class="file2" name="file2"/></span><span class="Validform_checktip">说明:[图片(可选)为图片新闻封面,尺寸宽度不能大于900像素,上传图片后请在内容中添加该图片,才能保证新闻内容与新闻封面图片一致]</span>
</dd>
</dl>
<dl class="contentdata">
<dt>内容描述</dt>
<dd>
<%-- 在线编辑器--%>
<input type="hidden" id="ContentText" runat="server" class="contentServer" /> <script id="editor" type="text/plain" name="ueContent" style="width: 99%; height: 350px;"></script> </dd>
</dl>
<iframe id="file_upload_return" hidden="true" name="file_upload_return"></iframe><!--用于获取表单返回的值-->
</div>

js代码需要先构造一个form表单,把所有数据添加到构造的form中。代码如下:

//添加文章
function AddArticle() {
var tmp = {};
tmp.xj_MenuId = $("#ddlCategoryId option:selected").val();
if ($("#PL").prop("checked")) {
tmp.is_Msg = ;
}
else {
tmp.is_Msg = ;
}
if ($("#ZD").prop("checked")) {
tmp.is_Top = ;
}
else {
tmp.is_Top = ;
}
if ($("#TJ").prop("checked")) {
tmp.is_Red = ;
}
else {
tmp.is_Red = ;
}
if ($("#JY").prop("checked")) {
tmp.xj_IsLocalNet = ;
}
else {
tmp.xj_IsLocalNet = ;
}
tmp.xj_RelayMenu = "";
$(".artShare_leaveOneList").find(".artShare_Item input").each(function() {
if ($(this).prop("checked")) {
if (tmp.xj_RelayMenu == "") {
tmp.xj_RelayMenu += $(this).val();
}
else {
tmp.xj_RelayMenu += "," + $(this).val();
}
}
});
tmp.xj_EduEnable = ""
$(".unitlist").find(".artShare_Item input").each(function() {
if ($(this).prop("checked")) {
if (tmp.xj_EduEnable == "") {
tmp.xj_EduEnable += $(this).val();
}
else {
tmp.xj_EduEnable += "," + $(this).val();
}
}
});
tmp.xj_Title = $("#txtTitle").val();
tmp.LinkType = $(".artEdit_urlTypeBox").find(".selected").attr("data-id");
if (tmp.LinkType == ) {
tmp.xj_Content = UE.getEditor('editor').getContent();
if (tmp.xj_Content == "") {
jsprint("文章内容不能为空", '', 'Error');
return false;
}
}
if (tmp.LinkType == ) {
tmp.TitleLink = $("#txtCallIndex").val();
if (tmp.TitleLink == "") {
jsprint("文章链接不能为空", '', 'Error');
return false;
}
}
tmp.xj_AddTime = $("#txtAddTime").val();
if (tmp.xj_AddTime == "") {
jsprint("添加时间不能为空", '', 'Error');
return false;
}
if (tmp.xj_Title == "") {
jsprint("文章标题不能为空", '', 'Error');
return false;
}
if (tmp.xj_MenuId == || tmp.xj_MenuId == ) {
jsprint("栏目选择不正确(如“├ * * * *“)", '', 'Error');
return false;
}
var pams = [];
pams.push($('<input>', { name: 'MenuId', value: tmp.xj_MenuId }));
pams.push($('<input>', { name: 'Msg', value: tmp.is_Msg }));
pams.push($('<input>', { name: 'Title', value: tmp.xj_Title }));
pams.push($('<input>', { name: 'AddTime', value: tmp.xj_AddTime }));
if (tmp.LinkType == ) {
pams.push($('<input>', { name: 'TitleLink', value: tmp.TitleLink }));
}
if (tmp.LinkType == ) {
pams.push($('<input>', { name: 'Content', value: tmp.xj_Content }));
}
if (tmp.LinkType == ) {
var file1 = $(".file1").val();
if (file1 == "") {
jsprint("文件不能为空", '', 'Error');
return false;
}
}
pams.push($('<input>', { name: 'LinkType', value: tmp.LinkType }));
pams.push($('<input>', { name: 'EduEnable', value: tmp.xj_EduEnable }));
pams.push($('<input>', { name: 'RelayMenu', value: tmp.xj_RelayMenu }));
pams.push($('<input>', { name: 'Top', value: tmp.is_Top }));
pams.push($('<input>', { name: 'Red', value: tmp.is_Red }));
pams.push($('<input>', { name: 'IsLocalNet', value: tmp.xj_IsLocalNet }));
pams.push($('<input>', { name: 'op', value: "add_edit_article" }));
pams.push($('<input>', { name: 'state', value: "Add" }));
pams.push($('<input>', { name: 'navName', value: navName }));
var imgfile = $(".file2").val();
if (imgfile == "") {
jsprint("封面图不能为空", '', 'Error');
return false;
}
var turnForm = document.createElement("form");
$('<form>', {
target: 'file_upload_return',
method: 'post',
enctype: "multipart/form-data",
action: '/Ajax/Manage.ashx'
}).append(pams).append($(".file1")).append($(".file2")).submit();
$("#file_upload_return").load(function() {//获取iframe中的内容
var body = $(window.frames['file_upload_return'].document.body);
var data = JSON.parse(body[].textContent);
if (data.status) {
jsprint(data.msg, '/Admin/School/Article_list.aspx', 'Sucess');
return false;
}
jsprint(data.msg, '', 'Error');
return false;
});
}

一般处理程序处理数据:

 private void Add_Edit_Artice()
{
string xj_MenuId = cnt.Request["MenuId"];
string is_Msg = cnt.Request["Msg"];
string xj_Title = cnt.Request["Title"];
string xj_AddTime = cnt.Request["AddTime"];
string TitleLink = cnt.Request["TitleLink"];
string xj_Content = cnt.Request["Content"];
string LinkType = cnt.Request["LinkType"];
string xj_EduEnable = cnt.Request["EduEnable"];
string xj_RelayMenu = cnt.Request["RelayMenu"];
string is_Top = cnt.Request["Top"];
string is_Red = cnt.Request["Red"];
string xj_IsLocalNet = cnt.Request["IsLocalNet"];
string state = cnt.Request["state"];
string navName = cnt.Request["navName"]; if (!ChkAdminLevel(navName, state))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "你无权限操作" }));
return;
}
if (string.IsNullOrEmpty(xj_Title))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "文章标题不能为空" }));
return;
}
if (string.IsNullOrEmpty(xj_AddTime.ToString()))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "文章添加时间不能为空" }));
return;
}
if (int.Parse(LinkType) == )
{
if (string.IsNullOrEmpty(TitleLink))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "文章标题链接不能为空" }));
return;
}
}
if (int.Parse(LinkType) == )
{
if (string.IsNullOrEmpty(xj_Content))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "文章内容不能为空" }));
return;
}
string key = "";
if (KeywordsHelper.CheckKeywords(xj_Content, out key))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "关键词含有非法字符”" + key + "“" }));
return;
}
}
try
{
XinjianSoft.Web.BLL.web_News bll = new XinjianSoft.Web.BLL.web_News(); string relativePath = "";
XinjianSoft.Web.Model.web_News model = new XinjianSoft.Web.Model.web_News();
HttpFileCollection fileCollection = cnt.Request.Files;//获取客户端传来的文件六流
if (state == "Add")
{
if (int.Parse(is_Msg) == )
{
model.is_Msg = true;
}
else
{
model.is_Msg = false;
}
if (int.Parse(is_Red) == )
{
model.is_Red = true;
}
else
{
model.is_Red = false;
}
if (int.Parse(is_Top) == )
{
model.is_Top = true;
}
else
{
model.is_Top = false;
}
if (int.Parse(xj_IsLocalNet) == )
{
model.xj_IsLocalNet = true;
}
else
{
model.xj_IsLocalNet = false;
}
model.LinkType = int.Parse(LinkType);
model.NewsState = "";
if (LinkType == "")
{
model.TitleLink = TitleLink;
}
model.xj_AddTime = DateTime.Now;
model.xj_AddUserId = usermodel.xj_UserName.ToString();
model.xj_Author = usermodel.xj_UserName;
if (LinkType == "")
{
model.xj_Content = xj_Content;
}
model.xj_EduEnable = xj_EduEnable;
model.xj_Enable = ;
model.xj_Hits = ;
model.xj_id = Guid.NewGuid();
model.xj_MenuId = new Guid(xj_MenuId);
model.xj_RelayMenu = xj_RelayMenu;
model.xj_Sort = ;
model.xj_Sources = navName;
model.xj_Title = xj_Title;
model.xj_UnitId = usermodel.UnitID;
model.xj_TrendsShow = false;
if (fileCollection.Count == )
{
//未接收到文件
//防止发生异常
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "你未选中任何图片" }));
return;
}
var file1 = fileCollection["file1"];
var file2 = fileCollection["file2"];
if (file1 != null)
{
//服务器段相对路径,上传到相册所在的文件夹下
relativePath = "/Upload/ArtcleFile/" + usermodel.xj_UserName + "/" + DateTime.Now.ToString("yyyyMM");
string strpath = UploadImg(fileCollection["file1"], relativePath);//获得文件存储路径
if (strpath == "")
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "保存图片发生异常" }));
return;
}
model.TitleLink = strpath;
}
if (file2 != null)
{
//服务器段相对路径,上传到相册所在的文件夹下
relativePath = "/Upload/ArtcleImage/" + usermodel.xj_UserName + "/" + DateTime.Now.ToString("yyyyMM");
string strpath = UploadImg(fileCollection["file2"], relativePath);//获得文件存储路径
if (strpath == "")
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "保存图片发生异常" }));
return;
}
model.xj_PhotoUrl = strpath;
}
if (bll.Add(model))
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = true, msg = "保存成功" }));
return;
}
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "保存失败" }));
return;
}
}
catch (System.Exception ex)
{
cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = ex.Message }));
return;
}
}

基于file上传文件的并发上传(多个文件一起上传到后台并把数据存储的同一条数据中,如 数据库字段videopath,imge。前台发送来的文件file1,file2。 videopath=file1,imge=file2)的更多相关文章

  1. [C#]_[使用微软OpenXmlSDK (OpenXmlReader)读取xlsx表格] 读取大数据量100万条数据Excel文件解决方案

      1.OpenXmlSDK是个很好的类库,可惜只能通过C#调用,C#的童鞋又福气了. 2.服务端程序由于没法安装office,所以这个对asp.net网站来说是最理想的库了.需要.net 4.0版本 ...

  2. 第十一章:Android数据存储(上)

    数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也是开发平台必须提供的基础功能.不光是在Android平台上,在其他的平台上,数据的存储永远是不可缺少的一块.Androi ...

  3. 【Android开发日记】之入门篇(七)——Android数据存储(上)

    在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...

  4. JavaScript 上万条数据 导出Excel文件 页面卡死

    最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var  ...

  5. JavaScript 上万条数据 导出Excel文件(改装版)

    最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var  ...

  6. 基于腾讯云存储COS的ClickHouse数据冷热分层方案

    一.ClickHouse简介 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),支持PB级数据量的交互式分析,ClickHouse最初是为YandexMetrica ...

  7. lr参数化——500户并发迭代1次 循环取5条数据

    lr参数化——500户并发迭代1次 循环取5条数据 比如vuser1.vuser2.vuser3..........,vuser500 shuju1,shuju2,shuju3,shuju4,shuj ...

  8. 基于springboot+jquery+H5的文件(并发+断点+分片)的上传方案

    1.支持文件分片断点续传 2.支持已上传文件再次上传时秒传 3.多个人对同一个文件同时上传可以多线程并发协调上传,加快超大文件的上传速度. 技术点:springboot + webflux + red ...

  9. c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习

    c#中@标志的作用   参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...

随机推荐

  1. Data Management Technology(4) -- 关系数据库理论

    规范化问题的提出 在规范化理论出现以前,层次和网状数据库的设计只是遵循其模型本身固有的原则,而无具体的理论依据可言,因而带有盲目性,可能在以后的运行和使用中发生许多预想不到的问题. 在关系数据库系统中 ...

  2. [20191119]探究ipcs命令输出.txt

    [20191119]探究ipcs命令输出.txt $ man ipcsIPCS(8)                    Linux Programmer's Manual              ...

  3. Linux—软连接与硬连接

    软链接的创建,删除,修改 创建软链接:ln -s[目标文件或目录][软链接地址] 解释:软链接地址相当于快捷方式,目标文件或目录才是真正的内容.[软链接地址]指“快捷键”文件名称,该文件是被指令创建的 ...

  4. Druid-代码段-5-1

    所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应主流程5,连接的回收: //DruidPooledConnection类的close方法 @Override public vo ...

  5. 如何查找jdk安装路径也就是JAVA_HOME配置的环境变量

  6. TensorFlow从1到2(十二)生成对抗网络GAN和图片自动生成

    生成对抗网络的概念 上一篇中介绍的VAE自动编码器具备了一定程度的创造特征,能够"无中生有"的由一组随机数向量生成手写字符的图片. 这个"创造能力"我们在模型中 ...

  7. 解决SQL Server中无管理员账户权限问题

    遇到忘记SQL Server管理员账户密码或管理员账户被意外删除的情况,如何在SQL Server中添加一个新的管理员账户?按一下步骤操作可添加一个windows账户到SQL Server中,并分配数 ...

  8. 利用Python几行代码批量生成验证码

    几行代码批量生成authCode 整体步骤: 1.创建图片 2.创建画笔 3.在图片上生成点 4.在图片上画线 5.在图片在画圆 6.在图片在写文本 7.在图片在生成指定字体的文本 代码奉上 #!/u ...

  9. A1071 Speech Patterns (25 分)

    一.技术总结 开始拿到这道题目时,思考的是我该如何区分它们每一个单词,不知道这里还是要学习得知在cctype头文件中有一个函数用于查看是否为0~9.a~z.A~Z,就是isalnum(),又因为题目中 ...

  10. matlab练习程序(点云密度)

    算法思路是首先建立kd树,然后找到每个点距离最近的点的距离,对距离求和再求平均即可. 代码如下: clear all; close all; clc; pc = pcread('rabbit.pcd' ...