javascript - 自动化 Priority-Web-SDK 文件上传
问题描述
我想创建一个命令行(或其他自动化)方法,用于使用 Web-SDK 将文件上传到优先级。我现在最好的解决方案似乎是一个由 python 脚本激活的简单网络表单。
是否有在不打开浏览器的情况下使用 Javascript 和文件选择器的工具/示例?是否有其他环境的 Priority-Web-SDK 端口?C#、Python 等?
任何其他建议也欢迎。
2020 年 6 月 14 日更新:
我能够使用 Javascript、Python 和 C# 的组合完成此客户端的任务。确实是一团糟,但文件已上传。我现在正在重新审视这项任务并寻找更清洁的解决方案。
我找到了一个工作且可用的 Node 模块,可以将程序压缩为可执行文件,使其成为可行的部署选项。
所以问题变得更加集中=>在没有浏览器表单的情况下为uploadDataUrl() 或uploadFile() 创建输入。
解决方案
这个 nodejs 脚本会将文件上传到 Priority。确保fetch-base64
已安装 npm:
"use strict";
const priority = require('priority-web-sdk');
const fetch = require('fetch-base64');
const configuration = {...};
async function uploadFile(formName, zoomVal, filepath, filename) {
try {
await priority.login(configuration);
let form = await priority.formStartEx(formName, null, null, null, 1, {zoomValue: zoomVal});
await form.startSubForm("EXTFILES", null ,null);
let data = await fetch.local(filepath + '/' + filename);
let f = await form.uploadDataUrl(data[0], filename.match(/\..+$/i)[0], () => {});
await form.fieldUpdate("EXTFILENAME", f.file); // Path
await form.fieldUpdate("EXTFILEDES", filename); // Name
await form.saveRow(0);
} catch(err) {
console.log('Something bad happened:');
console.dir(err);
}
}
uploadFile('AINVOICES', 'T9679', 'C:/my/path', 'a.pdf');
推荐阅读
- optimization - 如何在 CPLEX ILOG 上创建的模型中实现本地搜索算法?
- gmp - 为什么我不能将这个科学记数法读入 GMP mpf_t?
- ios - iOS Swift 代码 - 当我有断点时才工作
- node.js - 如何通过填充字段在猫鼬中查找文档?
- javascript - 用于通过 require 导入的 JSON 文件的 Visual Studio Code Intellisense
- node.js - Node 和 Express – 有条件地显示页面
- android - 为什么 RecyclerView 在没有 notifyDataSetChanged() 的情况下更新?
- android - Android ProGuard:保持内部注释接口
- c# - HtmlAgilityPack - 奇怪的 ArgumentOutOfRange 异常
- cocos2d-iphone - Box2D 和 Cocos2d-x 坐标