原創(chuàng)|使用教程|編輯:黃竹雯|2018-02-06 14:30:51.000|閱讀 540 次
概述:本篇教程演示使用leadtools的WCF接口功能實(shí)現(xiàn)從web端上傳Dicom影像文件。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
<head> <meta charset="UTF-8"> </head> <form onsubmit="return false;"> <input type="hidden" name="file_base64" id="file_base64"> <input type="file" id="fileup" multiple="multiple"> <input type="submit" value="submit" onclick="$.post('./uploader.php', $(this).parent().serialize());"> <div> <div id="msg"></div> </div> </form> <script src="scripts/jquery.min.js"></script> <script> $(document).ready(function () { authcookie = login(); document.cookie = "authcookie=" + authcookie; $("#fileup").change(function () { getauthcookie("authcookie"); filelist = this.files; file = filelist[fileindex]; upload(file); }); }); var authcookie;//保存authcookie var filelist;//上傳文件列表 var file;//當(dāng)前上傳文件 var tempfile = "";//臨時(shí)文件名稱 var position = 0; var size = 40000;//分段大小 var done = false; var fileindex=0;//當(dāng)前上傳文件序列號(hào) function upload(tempfile) { if(position==0) done=false; var reader = new FileReader(); if (file.size > position + 40000) reader.readAsArrayBuffer(file.slice(position, position + 40000)); else reader.readAsArrayBuffer(file.slice(position, file.size)); reader.onload = function (e) { if (e.target.readyState === 2) { var base64string = base64ArrayBuffer(e.target.result); var data = { authenticationCookie: authcookie, dicomData: base64string, fileName: tempfile, status: position==0?"start":"append" }; tempfile = senddata(JSON.stringify(data)); if (!done) { position += 40000; upload(tempfile); if (position+40000>file.size) done = true; } else { var data = { authenticationCookie: authcookie, dicomData: "", fileName: tempfile, status: "done" }; tempfile = senddata(JSON.stringify(data)); position = 0; $("#msg").html($("#msg").html()+"第"+(fileindex+1)+"個(gè)文件已經(jīng)上傳完成</p>"); fileindex += 1; if (fileindex < filelist.length) { file = filelist[fileindex]; upload(tempfile); } else { fileindex = 0; $("#msg").html($("#msg").html() + "文件全部已經(jīng)上傳完成</p>"); } } } }; } function senddata(data) { var result; $.ajax({ type:"post", url: "//localhost/MedicalViewerService19/StoreService.svc/UploadDicomImage", data: data, contentType: "application/json", dataType: "json", success: function(data){result= data}, async: false }); return result; } function login() { var auth; var logininfo = { userName: "a", password: "a", userData: "" }; $.ajax({ type: "post", url: "//localhost/MedicalViewerService19/AuthenticationService.svc/AuthenticateUser", data: JSON.stringify(logininfo), contentType: "application/json", dataType: "text", success: function (data) { auth= data }, async: false }); return auth; } function query() { } function getauthcookie() { document.cookie.split(";").forEach(function (val, index) { var index = val.indexOf("="); if ($.trim(val.substring(0, index)) == "authcookie") { authcookie = $.trim(val.substring(index + 1, val.length)); } }); return ""; } function base64ArrayBuffer(arrayBuffer) { var base64 = ''; var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var bytes = new Uint8Array(arrayBuffer); var byteLength = bytes.byteLength; var byteRemainder = byteLength % 3; var mainLength = byteLength - byteRemainder; var a, b, c, d; var chunk; // Main loop deals with bytes in chunks of 3 for (var i = 0; i < mainLength; i = i + 3) { // Combine the three bytes into a single integer chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; // Use bitmasks to extract 6-bit segments from the triplet a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 d = chunk & 63; // 63 = 2^6 - 1 // Convert the raw binary segments to the appropriate ASCII encoding base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; } // Deal with the remaining bytes and padding if (byteRemainder == 1) { chunk = bytes[mainLength] a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 // Set the 4 least significant bits to zero b = (chunk & 3) << 4; // 3 = 2^2 - 1 base64 += encodings[a] + encodings[b] + '=='; } else if (byteRemainder == 2) { chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 // Set the 2 least significant bits to zero c = (chunk & 15) << 2 // 15 = 2^4 - 1 base64 += encodings[a] + encodings[b] + encodings[c] + '='; } return base64; } </script>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn