guoqp 发表于 2022-12-7 16:53:02

三方系统将文件上传到活字格应用的解决方案

正常的解决方法应该是客户端做一个form表单,然后直接post到活字格,可惜活字格没有相关插件,个人能力有限,没能实现,后在向老师请教后找到一个js方法可以实现


readAsDataURL

有兴趣的可以了解下,这里有参考资料https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL

因为我也是才学习,所以讲的不一定透彻,就发一点代码给大家看看,剩下的就看大家的学习能力了

fujian.onchange = function () {
alert(8);
var reader = new FileReader();
reader.readAsDataURL(fujian.files);
reader.onload = function (e) {
    var result = e.target.result;
    if (result && result.length > 0) {
       var data = {"项目编号":"09009", "FileData": result };
       $.post(
         "http://10.20.16.9/pm/ServerCommand/SetContractScan",
         data,
         function (res,status) {
         alert(res);
         },
         "json");
    }
};
};//fujian onchange

</script>

<div style="display:"><input type="file" id="fujian"name="fujian" /></div>


这里post的URL是我用活字做的接口


第一步是要取得上传的文件类型
这里先说一下上传上来的数据格式是这样的
data:application/pdf;base64,JVBERi0xLjcKJcKzx9gNCjEgMCBvYmoNPDwvTmFtZXMgPDwvRGVzdHMgNCAwIFI+PiAvT3V0bGluZXMgNSAwIFIgL1BhZ2VzIDIgMCBSIC9UeXBlIC9DYXRhbG9nPj4NZW5kb2JqD
从样列数据中可以看出,最开始有个data后边就是mime类型,下边我把一些常用的数据类型列出来供大家参考
base64,这个后边的才是真实的文件BASE64加密后的数据,我们拿到数据再进行BASE64解密到文件就可以了


1、xls
application/vnd.ms-excel
2、xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
3、ppt
application/vnd.ms-powerpoint
4、pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation
5、doc
application/msword
6、docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
7、zip
application/x-zip-compressed
8、rar
application/x-zip-compressed
9、wmv
video/x-ms-wmv
10、mp3
audio/mpeg
11、mp4
video/mp4
12、gif
image/gif
13、jpg
image/jpeg
14、png
image/png
15、bmp
image/bmp
16、psd
application/octet-stream
17、ico
image/x-icon
18、7z
application/octet-stream
19、exe
application/octet-stream
20、avi
video/avi
21、rmvb
application/vnd.rn-realmedia-vbr
22、3gp
application/octet-stream
23、flv
application/octet-stream
24、wav
audio/wav
25、krc
application/octet-stream
26、lrc
application/octet-stream
27、txt
text/plain
28、pdf
application/pdf
29、chm
application/octet-stream
30、mdb
application/msaccess
31、sql
application/octet-stream
32、con
application/octet-stream
33、log
text/plain
34、dat
application/octet-stream
35、ini
application/octet-stream
36、php
application/octet-stream
37、html 和 htmhtm
text/html
38、ttf
application/octet-stream
39、fon
application/octet-stream
40、js
application/x-javascript
41、xml
text/xml
42、dll
application/octet-stream



使用这个命令可以取到文件数据


使用这个从就可以将base64文件存到服务器本地了

这样就可以实现数据上传到活字格中了
如果上传的路径就是活字格的附件存储目录,就可以直接写入到表中,直接当作附件来使用。

赛龙周 发表于 2022-12-8 07:16:57

能否分享下demo

guoqp 发表于 2022-12-8 07:27:13

赛龙周 发表于 2022-12-8 07:16
能否分享下demo

就一个命令,所有截图都贴出来了
连客户端所有代码我都贴出来了
目前我自己这只是完成了上传文件的保存与写表,其他还没完善呢
页: [1]
查看完整版本: 三方系统将文件上传到活字格应用的解决方案