dzxstatic
Version:
The static files of Discuz! X
1 lines • 5.65 kB
JavaScript
jQuery.extend({buildfileupload:function(e){try{var t=new FileReader,r=!1;r=!0;var a=function(t){XMLHttpRequest.prototype.sendAsBinary||(XMLHttpRequest.prototype.sendAsBinary=function(e){var t=Array.prototype.map.call(e,(function(e){return 255&e.charCodeAt(0)})),r=new Uint8Array(t);this.send(r.buffer)});var r,a=new XMLHttpRequest,n=e.files[0],o=((new Date).getTime(),"------multipartformboundary"+(new Date).getTime());r=jQuery.getbuilder(e,n.name,t,o),e.uploadpercent&&(a.upload.onprogress=function(t){if(t.lengthComputable){var r=Math.ceil(t.loaded/t.total*100);$("#"+e.uploadpercent).html(r+"%")}}),a.open("POST",e.uploadurl,!0),a.setRequestHeader("content-type","multipart/form-data; boundary="+o),a.sendAsBinary(r),a.onerror=function(){e.error()},a.onabort=function(){e.error()},a.ontimeout=function(){e.error()},a.onload=function(){a.responseText&&e.success(a.responseText)}},n=function(e){function t(t){return 255&e.charCodeAt(t)}function r(e,r){var a=r?(t(e)<<8)+t(e+1):(t(e+1)<<8)+t(e);return a<0&&(a+=65536),a}function a(e,r){var a=t(e),n=t(e+1),o=t(e+2),i=t(e+3),s=r?(((a<<8)+n<<8)+o<<8)+i:(((i<<8)+o<<8)+n<<8)+a;return s<0&&(s+=4294967296),s}function n(e,t){var r=a(e,t);return r>2147483647?r-4294967296:r}function o(t,r){for(var a=[],n=function(t,r){for(var a=[],n=0;n<r;n++)a[n]=255&e.charCodeAt(t+n);return a}(t,r),o=0;o<r;o++)a[o]=String.fromCharCode(n[o]);return a.join("")}function s(e,s,u,c){var f,d,h=r(e+2,c),l=a(e+4,c),m=a(e+8,c)+s;switch(h){case 1:case 7:if(1==l)return t(e+8);f=l>4?m:e+8,d=[];for(var p=0;p<l;p++)d[p]=t(f+p);return d;case 2:return o(f=l>4?m:e+8,l-1);case 3:if(1==l)return r(e+8,c);f=l>2?m:e+8,d=[];for(p=0;p<l;p++)d[p]=r(f+2*p,c);return d;case 4:if(1==l)return a(e+8,c);d=[];for(p=0;p<l;i++)d[p]=a(m+4*p,c);return d;case 5:if(1==l){var g=a(m,c),v=a(m+4,c),y=new Number(g/v);return y.numerator=g,y.denominator=v,y}d=[];for(p=0;p<l;p++){g=a(m+8*p,c),v=a(m+4+8*p,c);d[p]=new Number(g/v),d[p].numerator=g,d[p].denominator=v}return d;case 9:if(1==l)return n(e+8,c);d=[];for(p=0;p<l;p++)d[p]=n(m+4*p,c);return d;case 10:if(1==l)return n(m,c)/n(m+4,c);d=[];for(p=0;p<l;p++)d[p]=n(valuesoffset+8*p,c)/n(m+4+8*p,c);return d}}function u(e){if("Exif"!=o(e,4))return!1;var t,n=e+6;if(18761==r(n))t=!1;else{if(19789!=r(n))return!1;t=!0}if(42!=r(n+2,t))return!1;if(8!=a(n+4,t))return!1;return function(e,t,a,n){for(var o=r(t,n),i={},u=0;u<o;u++)entryoffset=t+12*u+2,i[a[r(entryoffset,n)]]=s(entryoffset,e,0,n);return i}(n,n+8,{274:"Orientation"},t)}if(255!=t(0)||216!=t(1))return!1;for(var c,f=2,d=e.length;f<d;){if(255!=t(f))return!1;if(22400==(c=t(f+1))||225==c)return u(f+4);f+=2+r(f+2,!0)}},o=document.createElement("canvas"),s=o.getContext("2d"),u=new Image;u.onload=function(){$this=$(this);var t=this.width?this.width:$this.width(),r=this.height?this.height:$this.height(),i=t,u=r;t/r<=1&&r>=500?(u=500,i=Math.ceil(500/r*t)):t/r>1&&t>=500&&(i=500,u=Math.ceil(500/t*r)),s.save();var c=this.src.replace(/data:.+;base64,/,"");c="function"==typeof atob?atob(c):jQuery.base64decode(c);var f=n(c);f=f.Orientation,function(e,t,r){if(r*t>1048576){var a=document.createElement("canvas");a.width=a.height=1;var n=a.getContext("2d");return n.drawImage(e,1-t,0),0===n.getImageData(0,0,1,1).data[3]}return!1}(this,t,r)&&(r/=2,t/=2);var d=function(e,t){var r=document.createElement("canvas");r.width=1,r.height=t;var a=r.getContext("2d");a.drawImage(e,0,0);for(var n=a.getImageData(0,0,1,t).data,o=0,i=t,s=t;s>o;){0===n[4*(s-1)+3]?i=s:o=s,s=i+o>>1}var u=s/t;return 0===u?1:u}(this,r);!function(e,t,r,a,n){switch(n){case 5:case 6:case 7:case 8:e.width=a,e.height=r;break;default:e.width=r,e.height=a}switch(n){case 2:t.translate(r,0),t.scale(-1,1);break;case 3:t.translate(r,a),t.rotate(Math.PI);break;case 4:t.translate(0,a),t.scale(1,-1);break;case 5:t.rotate(.5*Math.PI),t.scale(1,-1);break;case 6:t.rotate(.5*Math.PI),t.translate(0,-a);break;case 7:t.rotate(.5*Math.PI),t.translate(r,-a),t.scale(-1,1);break;case 8:t.rotate(-.5*Math.PI),t.translate(-r,0)}}(o,s,i,u,f),s.drawImage(this,0,0,t,r,0,0,i,u/d),s.restore();var h=o.toDataURL(e.files[0].type).replace(/data:.+;base64,/,"");"function"==typeof atob?a(atob(h)):a(jQuery.base64decode(h))},t.index=0,t.onloadend=function(e){r?u.src=e.target.result:a(e.target.result)},r?t.readAsDataURL(e.files[0]):t.readAsBinaryString(e.files[0])}catch(t){return e.error()}},getbuilder:function(e,t,r,a){var n="";for(var o in e.uploadformdata)n+="--",n+=a,n+="\r\n",n+='Content-Disposition: form-data; name="'+o+'"',n+="\r\n",n+="\r\n",n+=e.uploadformdata[o],n+="\r\n";return n+="--",n+=a,n+="\r\n",n+='Content-Disposition: form-data; name="'+e.uploadinputname+'"',n+='; filename="'+t+'"',n+="\r\n",n+="Content-Type: application/octet-stream",n+="\r\n",n+="\r\n",n+=r,n+="\r\n",n+="--",n+=a,n+="--",n+="\r\n"}}),jQuery.extend({base64encode:function(e){var t,r,a,n,o,i="",s="",u="",c=0;do{a=(t=e.charCodeAt(c++))>>2,n=(3&t)<<4|(r=e.charCodeAt(c++))>>4,o=(15&r)<<2|(s=e.charCodeAt(c++))>>6,u=63&s,isNaN(r)?o=u=64:isNaN(s)&&(u=64),i=i+this._keys.charAt(a)+this._keys.charAt(n)+this._keys.charAt(o)+this._keys.charAt(u),t=r=s="",a=n=o=u=""}while(c<e.length);return i},base64decode:function(e){var t,r,a,n,o="",i="",s="",u=0;if(e.length%4!=0)return"";if(/[^A-Za-z0-9\+\/\=]/g.exec(e))return"";do{t=this._keys.indexOf(e.charAt(u++))<<2|(a=this._keys.indexOf(e.charAt(u++)))>>4,r=(15&a)<<4|(n=this._keys.indexOf(e.charAt(u++)))>>2,i=(3&n)<<6|(s=this._keys.indexOf(e.charAt(u++))),o+=String.fromCharCode(t),64!=n&&(o+=String.fromCharCode(r)),64!=s&&(o+=String.fromCharCode(i)),t=r=i="",a=n=s=""}while(u<e.length);return o},_keys:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="});