找回密码
 立即注册

QQ登录

只需一步,快速开始

guoqp

银牌会员

243

主题

914

帖子

2229

积分

银牌会员

积分
2229

时代开发者征文活动

guoqp
银牌会员   /  发表于:2022-12-7 16:53  /   查看:2262  /  回复:2
正常的解决方法应该是客户端做一个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[0]);
  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是我用活字做的接口
image.png882322692.png
image.png794223327.png
第一步是要取得上传的文件类型
这里先说一下上传上来的数据格式是这样的
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


image.png507870177.png
使用这个命令可以取到文件数据

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

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

评分

参与人数 2金币 +1000 满意度 +5 收起 理由
Nancy.Yin + 1000
赛龙周 + 5

查看全部评分

2 个回复

倒序浏览
赛龙周
银牌会员   /  发表于:2022-12-8 07:16:57
沙发
能否分享下demo
回复 使用道具 举报
guoqp
银牌会员   /  发表于:2022-12-8 07:27:13
板凳
赛龙周 发表于 2022-12-8 07:16
能否分享下demo

就一个命令,所有截图都贴出来了
连客户端所有代码我都贴出来了
目前我自己这只是完成了上传文件的保存与写表,其他还没完善呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部