基於file上傳文件的併發上傳(多個文件一塊兒上傳到後臺並把數據存儲的同一條數據中,如 數據庫字段videopath,imge。前臺發送來的文件file1,file2。 videopath=file1,

前臺代碼:javascript

    <div class="tab-content">
        <dl>
            <dt>所屬欄目</dt>
            <dd>
                <div class="rule-single-select">
                    <select id="ddlCategoryId">
                        <option value="0">全部欄目</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="0">本文頁面</li>
                                <li data-id="1">其餘頁面</li>
                                <li data-id="2">文件地址</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">
                            說明:[1.本文頁面:點擊標題在詳情頁面查看內容;2.其餘頁面:點擊標題打開的是連接頁面;3.文件地址:點擊標題直接下載文件]</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中。代碼以下:java

//添加文章
function AddArticle() {
    var tmp = {};
    tmp.xj_MenuId = $("#ddlCategoryId option:selected").val();
    if ($("#PL").prop("checked")) {
        tmp.is_Msg = 1;
    }
    else {
        tmp.is_Msg = 0;
    }
    if ($("#ZD").prop("checked")) {
        tmp.is_Top = 1;
    }
    else {
        tmp.is_Top = 0;
    }
    if ($("#TJ").prop("checked")) {
        tmp.is_Red = 1;
    }
    else {
        tmp.is_Red = 0;
    }
    if ($("#JY").prop("checked")) {
        tmp.xj_IsLocalNet = 1;
    }
    else {
        tmp.xj_IsLocalNet = 0;
    }
    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 == 0) {
        tmp.xj_Content = UE.getEditor('editor').getContent();
        if (tmp.xj_Content == "") {
            jsprint("文章內容不能爲空", '', 'Error');
            return false;
        }
    }
    if (tmp.LinkType == 1) {
        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 == 0 || tmp.xj_MenuId == 1) {
        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 == 1) {
        pams.push($('<input>', { name: 'TitleLink', value: tmp.TitleLink }));
    }
    if (tmp.LinkType == 0) {
        pams.push($('<input>', { name: 'Content', value: tmp.xj_Content }));
    }
    if (tmp.LinkType == 2) {
        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[0].textContent);
        if (data.status) {
            jsprint(data.msg, '/Admin/School/Article_list.aspx', 'Sucess');
            return false;
        }
        jsprint(data.msg, '', 'Error');
        return false;
    });
}

通常處理程序處理數據:web

 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) == 1)
            {
                if (string.IsNullOrEmpty(TitleLink))
                {
                    cnt.Response.Write(JsonHelper.SerializeObject(new { status = false, msg = "文章標題連接不能爲空" }));
                    return;
                }
            }
            if (int.Parse(LinkType) == 0)
            {
                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) == 1)
                    {
                        model.is_Msg = true;
                    }
                    else
                    {
                        model.is_Msg = false;
                    }
                    if (int.Parse(is_Red) == 1)
                    {
                        model.is_Red = true;
                    }
                    else
                    {
                        model.is_Red = false;
                    }
                    if (int.Parse(is_Top) == 1)
                    {
                        model.is_Top = true;
                    }
                    else
                    {
                        model.is_Top = false;
                    }
                    if (int.Parse(xj_IsLocalNet) == 1)
                    {
                        model.xj_IsLocalNet = true;
                    }
                    else
                    {
                        model.xj_IsLocalNet = false;
                    }
                    model.LinkType = int.Parse(LinkType);
                    model.NewsState = "0";
                    if (LinkType == "1")
                    {
                        model.TitleLink = TitleLink;
                    }
                    model.xj_AddTime = DateTime.Now;
                    model.xj_AddUserId = usermodel.xj_UserName.ToString();
                    model.xj_Author = usermodel.xj_UserName;
                    if (LinkType == "0")
                    {
                        model.xj_Content = xj_Content;
                    }
                    model.xj_EduEnable = xj_EduEnable;
                    model.xj_Enable = 0;
                    model.xj_Hits = 1;
                    model.xj_id = Guid.NewGuid();
                    model.xj_MenuId = new Guid(xj_MenuId);
                    model.xj_RelayMenu = xj_RelayMenu;
                    model.xj_Sort = 0;
                    model.xj_Sources = navName;
                    model.xj_Title = xj_Title;
                    model.xj_UnitId = usermodel.UnitID;
                    model.xj_TrendsShow = false;
                    if (fileCollection.Count == 0)
                    {
                        //未接收到文件
                        //防止發生異常
                        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;
            }
        }
相關文章
相關標籤/搜索