西部数码没有提供js的SDK,记录下,望各位少爬坑。
我的前端项目环境:vue.js + itk.js + vtk.js,主要是取文件。
1,main.js 添加,如下代码(直接贴)
var $http = Axios.create({
baseURL: '换成自己的',
timeout: '10000', //请求超时时间
headers: {'Authorization': 'Basic 换成自己的'}
})
Vue.prototype.$http = $http
2,获取文件列表(一般都是一组一组的图,按检查号分目录存,一级目录)
getFilelist(url, v_herders, files, callback){
let jerry = this;
this.$http.get(url,
{
headers:v_herders
})
.then(function(res){
files = files.concat(res.data.files)
if(res.data.iter == 'bmV4dCBpbmRleDpFT0Y=')
{
callback(url,files);
}
else{
v_herders['x-list-iter'] = res.data.iter;
jerry.getFilelist(url, v_herders, files,callback);
}
})
.catch(function(err){
alert(err);
return;
}
);
}
3,下载文件,content就是文件内容,调试代码用完删掉即可。
downloadFiles(url,data){
console.log("Jerry:::: files count==",data.length);
data.forEach(element => {
this.$http.get(url + element.name,
{
responseType:'blob'
})
.then(function(res){
const content = res.data
const fileName = res.config.url
console.log("Jerry 计数");
// (调试)写到文件确认
// const blob = new Blob([content])
// if ('download' in document.createElement('a')) {
// const link = document.createElement('a')
// link.download = fileName
// link.style.display = 'none'
// link.href = URL.createObjectURL(blob)
// document.body.appendChild(link)
// link.click()
// URL.revokeObjectURL(link.href)
// document.body.removeChild(link)
// } else {
// navigator.msSaveBlob(blob, fileName)
// }
})
});
}
4,用
//1个文件 test/CT1/
//50个文件 test/CT50/
//483个文件 test/111/
let url = 'test/CT1/';
var files = [];
let headers = {
'x-list-limit':100
};
this.getFilelist(url,headers,files,this.downloadFiles);