项目场景:
项目场景:前端点击按钮,调用印控仪仪器,该仪器会拍照并返回图片信息到固定文件夹。
问题描述
项目架构为 vue+springmvc,项目部署后如何在客户端获取到仪器返回的图片信息,并上传到后端。
错误方法:
使用axios方法,类型传blob 获取到的图片信息为服务器上的信息。
原因分析:
axios为node.js方法,而node本身是请求服务端方法,所以获取不到客户端本地文件。
解决方案:
使用IE浏览器自带的插件,获取客户端本地文件夹中的图片信息。
var fso = new ActiveXObject('Scripting.FileSystemObject')
var path = 'C:\\OrientDoc'
if(!fso.FolderExists(path)){
fso.CreateFolder(path)
}
var fldr = fso.GetFolder(path + '\\')
var ff = new Enumerator(fldr.Files)
var fileName
for(;!ff.atEnd();ff.moveNext()){
fileName = ff.item().Name
var fnn = '' + ff.item()
var urlpath = path + '\\' + fileName
var Filesss = fso.GetFile(urlpath)
var base64str
var x = new ActiveXObject('Msxml2.XMLHTTP.6.0')
x.onreadystatechange = function(){
if(x.readyState < 4) return
var xml_dom = new ActiveXObject('MSXML2.DOMDocument')
var tmpNode = xml_dom.createElement('tmpNode')
tmpNode.dataType = 'bin.base64'
tmpNode.nodeTypedValue = x.responseBody
base64str = tmpNode.text.replace(/\n/g,'')
}
x.open('get',urlpath,true)
x.send('')
console.log(base64str)
}