嫻忚-閫夋嫨鏂囦歡-鐐瑰嚮 “涓婁紶 ”鍚庯紝鏁堟灉濡備笅錛?/p>
寮瑰嚭閫忔槑UI閬僵灞?騫舵樉紺轟笂浼犺繖涓繃紼?鎴戣繖閲岃緗お閫忔槑浜?鏁堟灉涓嶆槸寰堢珛浣?/p>
鏂囦歡緇撴瀯濡傚浘錛?/p>
璇存槑錛氱敤鍒?#8220;楂樺北鏉ュ”鐨勫ぇ鏂囦歡涓婁紶緇勪歡 http://www.cnblogs.com/bashan/archive/2008/05/23/1206095.html
浠ュ強Newtonsoft.Json.dll Json瀛楃涓插弽搴忓垪鍖栦負瀵硅薄 http://james.newtonking.com/projects/json-net.aspx
jquery.blockUI.js 寮瑰嚭閫忔槑閬僵灞?http://malsup.com/jquery/block/
jquery.form.js 琛ㄥ崟楠岃瘉Ajax鎻愪氦
鍙傜収浜?#8220;铓傝殎椋炰簡”鐨勬枃绔?澶氳阿澶氳阿 http://blog.csdn.net/jetsteven
HTML錛?/p>
<form id="uploadForm" runat="server" enctype="multipart/form-data"> <div id="uploadfield" style="width:600px; height:500px"> <input id="File1" type="file" runat="server" /> <asp:Button ID="Button1" runat="server" Text="涓婁紶" onclick="Button1_Click" /> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> <p>鏂囦歡涓婁紶榪涘害鏉?span style="color: blue"></p> </div> <div id="ui" style="display:none" > <div id="output" > </div> <div id="progressbar"class="ui-progressbar ui-widget ui-widget-content ui-corner-all" style="width:296px; height:20px;"></div> <input id="btn_cancel" type="button" value="鍙栨秷涓婁紶" /> </div> </form>
js:
var inte; $(function() { $('#uploadForm').submit(function() { return false; }); $('#uploadForm').ajaxForm({ //榪欓噷璋冪敤jquery.form.js琛ㄥ崟娉ㄥ唽鏂規硶 beforeSubmit: function(a, f, o) {//鎻愪氦鍓嶇殑澶勭悊 o.dataType = "json"; $('#uploadfield').block({ message: $('#ui'), css: { width: '300px', border: '#b9dcfe 1px solid',padding: '0.5em 0.2em' } }); inte = self.setInterval("getprogress()", 500); } }); $('#btn_cancel').click(function() { var uploadid = $("#UploadID").val(); $.ajax({ type: "POST", dataType: "json", async: false, //ajax鐨勮姹傛椂鍚屾 鍙湁涓涓嚎紼? url: "upload_ajax.ashx", data: "UploadID=" + uploadid + "&cancel=true", success: function(obj) { $("#output").html(obj.msg); inte = self.clearInterval(inte); $('#uploadfield').unblock(); } }); }); }); function getprogress() { var uploadid = $("#UploadID").val() $.ajax({ type: "POST", dataType: "json", async: false, url: "upload_ajax.ashx", data: "UploadID=" + uploadid, success: function(obj) { var p = obj.msg.Readedlength / obj.msg.TotalLength * 100; var info = "<FONT color=Green> 褰撳墠涓婁紶鏂囦歡:</FONT>" + obj.msg.CurrentFile; info += "<br><FONT color=Green>" + obj.msg.FormatStatus + ":</FONT>" + obj.msg.Status; info += "<br><FONT color=Green>鏂囦歡澶у皬:</FONT>" + obj.msg.TotalLength; info += "<br><FONT color=Green>閫熷害:</FONT>" + obj.msg.FormatRatio; info += "<br><FONT color=Green>鍓╀綑鏃墮棿:</FONT>" + obj.msg.LeftTime; $("#output").html(info); $("#progressbar").progressbar({ value: 0 }); //鍒濆鍖? $("#progressbar").progressbar("option", "value", p); $("#progressbar div").html(p.toFixed(2) + "%"); $("#progressbar div").addClass("percentText"); if (obj.msg.Status == 4) { inte = self.clearInterval(inte); $('#uploadfield').unblock(); } } }); }
浜や簰榪囩▼浠g爜錛?/span>
<%@ WebHandler Language="C#" Class="progressbar" %> using System; using System.Web; using BigFileUpload;//澶ф枃浠跺紩鐢ㄥ懡鍚嶇┖闂?using Newtonsoft.Json;//瀵硅薄鍒癑SON鐨勭浉浜掕漿鎹?using System.Text.RegularExpressions;//姝e垯 public class progressbar : IHttpHandler { private string template = "{{statue:'{0}',msg:{1}}}"; public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { string guid = context.Request["UploadID"]; string cancel =context.Request["cancel"]; UploadContext c = UploadContextFactory.GetUploadContext(guid); if (!string.IsNullOrEmpty(cancel)) { c.Abort=true; throw new Exception("鐢ㄦ埛鍙栨秷"); } string json = Newtonsoft.Json.JsonConvert.SerializeObject(c); WriteResultJson(1, json, context,template); }catch (Exception err) { WriteResultJson(0, err.Message, context); } } public static void WriteResultJson(int resultno, string description, HttpContext context) { WriteResultJson(resultno, description, context, "{{statue:'{0}',msg:'{1}'}}"); } public static void WriteResultJson(int resultno, string description, HttpContext context, string template) { description = ClearBR(ReplaceString(description, "'", "|", false)); context.Response.Write(string.Format(template, resultno, description)); } public static string ClearBR(string str) { Regex r = null; Match m = null; r = new Regex(@"(\r|\n)", RegexOptions.IgnoreCase); for (m = r.Match(str); m.Success; m = m.NextMatch()) { str = str.Replace(m.Groups[0].ToString(), @"\n"); } return str; } public static string ReplaceString(string SourceString, string SearchString, string ReplaceString, bool IsCaseInsensetive) { return Regex.Replace(SourceString, Regex.Escape(SearchString), ReplaceString, IsCaseInsensetive ? RegexOptions.IgnoreCase : RegexOptions.None); } public bool IsReusable { get { return false; } } }杞?div>http://www.cnblogs.com/jcomet/archive/2010/03/24/1693467.html
鍘熺悊綆鍗曠殑涓嶈兘鍐嶇畝鍗曪紝灝辨槸鏇挎崲鍙橀噺錛岀敤杞箟瀛楃鏇挎崲浣犵殑瀛楃涓詫紝鎶婃暣涓猨s鍙樻垚涓涓瓧絎︿覆錛岀劧鍚庨殢渚垮姞瀵嗘浛鎹紝鏈鍚庣敤eval鏉ヨВ閲婁粬銆傛渶鍚庢妸鏁翠釜js鏂囦歡鍘嬬緝涓嬶紝娌℃湁娉ㄩ噴錛屾病鏈夋崲琛岋紝娌℃湁絀烘牸錛屼竴鑸漢閮戒細鐪嬪埌鍚愯銆?/span>
璇翠簡鍗婂ぉ涓嶅鐖斤紝鎬諱笉鑳借澶у鎵嬪姩鍔犲瘑鍜屾浛鎹㈠惂錛屼互涓嬫槸鎴戠殑寰$敤鍦ㄧ嚎鍔犲瘑宸ュ叿錛宩Query灝辨槸鐢ㄥ叾涓竴涓姞瀵嗗拰鍘嬬緝鐨勶細
http://www.javascriptobfuscator.com/Default.aspx
http://dean.edwards.name/packer/
榪?緗戠珯鍙彁渚涘姞瀵嗭紝涓嶆彁渚涜В瀵嗭紝鍏跺疄浣犺В瀵嗕簡鐪嬪緱浜轟篃寰堢棝鑻︼紝娌℃湁娉ㄩ噴錛屾病鏈夋牸寮忥紝鍏ㄦ槸abcd榪欐牱鏃犳剰涔夌殑鍙橀噺錛岀湡鏈夊績鎯沖浣爅s鐨勪漢錛岄偅灝辮浠栧鍚с備綘濡傛灉鐪熺殑鍙樻侊紝閭d綘涓嶅Θ涓よ竟娣峰悎鍔犲瘑鍑犳錛屼繚鍑嗘病浜虹湅寰楁噦錛屼笉榪囦及璁℃祻瑙堝櫒瑙i噴璧鋒潵涔熸尯璐瑰姴鐨勩?/span>
鐗瑰埆鍙嬫儏鎻愰啋錛?a target="_blank" >meebe.net
1.鍔犲瘑鍚庤鐫鐣欎綇浣犲師鏈殑js鏂囦歡錛屼笉瑕佸埌鏃跺欐敼bug閮芥敼涓嶄簡浜嗐?/span>
2.鍔犲瘑鍚庡鏋滃嚭鐜拌繍琛屼笉浜嗭紝璇鋒妸浣犲姞瀵嗗墠鐨勬枃浠舵瘡嬈″嚱鏁扮粨鏉熼兘鍔犱笂";",鍥犱負鍘婚櫎鎹㈣鍚庯紝嫻忚鍣ㄨВ閲婂櫒娌$鍒?;"鏈夋椂鍊欎細鎶ラ敊銆傚鏋滃姞瀵嗗悗鏈夐敊錛岃鍔″繀澶氬姞鍑犱釜";"鍦ㄦ瘡涓鍙ョ粨鏉熸垨鑰呭畾涔夌粨鏉熺殑鏃跺欍?/span>
杞嚜 meebe.net