123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- //图片上传 (uploadImageArray = [{"name":"xxx","base64":"xxx"}])
- function uploadImg(uploadImageArray, qiniuToken) {
- if (uploadImageArray && uploadImageArray.length > 0 && qiniuToken) {
- //上传,返回地址
- var putExtra = {
- fname: "",
- params: {},
- mimeType: [] || null
- };
- var config = {
- useCdnDomain: true
- };
- window.WinSuccCount = 0;
- window.WinUploadImgCount = uploadImageArray.length;
- for (var i = 0; i < uploadImageArray.length; i++) {
- doUpload(uploadImageArray[i].name, uploadImageArray[i].base64.replace('data:image/png;base64,', ''), qiniuToken);
- }
- }
- }
- //图片上传七牛云
- function doUpload(name, base64, qiniuToken) {
- //图片上传(base64模式直传)
- var urlkey = toBase64(name); //自定义文件名必须是base64格式的
- var url = "http://upload.qiniup.com/putb64/-1/key/" + urlkey; //非华东空间需要根据注意事项-修改上传域名(upload.qiniup.com)
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4) {
- //返回信息
- console.log(xhr.responseText);
- //检测是否上传完毕,提交请求给服务器
- ++window.WinSuccCount;
- if (window.WinUploadImgCount == window.WinSuccCount) {
- reqCheckServer();
- window.WinSuccCount = 0;
- window.WinUploadImgCount = 0;
- }
- }
- }
- xhr.open("POST", url, true);
- xhr.setRequestHeader("Content-Type", "application/octet-stream");
- xhr.setRequestHeader("Authorization", "UpToken " + qiniuToken);
- xhr.send(base64);
- }
- //提交作业批改(php)
- function reqCheckServer() {
- if (window.checkJson) {
- // prompt("最终结果", window.checkJson);
- jQuery.ajax({
- type: "POST",
- url: config.checkURL,
- data: { "param": window.checkJson },
- success: function (res) {
- location.href = config.callbackURL;
- console.log(res);
- }
- });
- jQuery("#maskDiv").hide();
- }
- }
- function toBase64(data) {
- var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
- var base64Pad = '=';
- var result = '';
- var length = data.length;
- var i;
- for (i = 0; i < (length - 2); i += 3) {
- result += toBase64Table[data.charCodeAt(i) >> 2];
- result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)];
- result += toBase64Table[((data.charCodeAt(i + 1) & 0x0f) << 2) + (data.charCodeAt(i + 2) >> 6)];
- result += toBase64Table[data.charCodeAt(i + 2) & 0x3f];
- }
- if (length % 3) {
- i = length - (length % 3);
- result += toBase64Table[data.charCodeAt(i) >> 2];
- if ((length % 3) == 2) {
- result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)];
- result += toBase64Table[(data.charCodeAt(i + 1) & 0x0f) << 2];
- result += base64Pad;
- } else {
- result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];
- result += base64Pad + base64Pad;
- }
- }
- return result;
- }
- //base64转blob
- function base64ToBlob(base64, contentType, sliceSize) {
- contentType = contentType || '';
- sliceSize = sliceSize || 512;
- var byteCharacters = atob(base64);
- var byteArrays = [];
- for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
- var slice = byteCharacters.slice(offset, offset + sliceSize);
- var byteNumbers = new Array(slice.length);
- for (var i = 0; i < slice.length; i++) {
- byteNumbers[i] = slice.charCodeAt(i);
- }
- var byteArray = new Uint8Array(byteNumbers);
- byteArrays.push(byteArray);
- }
- var blob = new Blob(byteArrays, { type: contentType });
- return blob;
- }
|