工作需要,asp+access建了个简单信息交互平台,表单填报、签名、及查看只能在手机上进行。已实现base64直接入数据库。有jccscxj.asp(首页表单填报)、jccscxjup.asp(手写签名页面)、ajax-cscxj.asp(入库页面)、anco.asp(数据库联接)、cscxjck.asp(填报项查看)等五个asp文件、jcxj.mdb数据库和相关格式js、css文件。实现步骤:首页填报各项表单-->进入签名页面-->提交签名显示签名结果。经过实践,base64入库数据太大,想进行优化改进。经过近半月的折腾,问题终于解决。先是把问题想复杂了。是在原base64能直接入库的基础上优化。说明ajax提交的数据是成功的。只是把入库的base64数据改成图片文件存服务器的一个指定目录、数据库只加入链接就行了。所以只需要修改入库文件ajax_cscxj.asp即可。其它文件都不需要改变。笔记留存。
修改ajax_cscxj.asp后的代码:
`
<%@language="vbscript" codepage="65001"%>
<%
id = int(request.form("id"))
id = right("0000" & id, 4) ' 格式化为4位数,不足部分用0填充
filename =id & "" & datepart("yyyy", now()) & datepart("m", now()) & datepart("d", now()) & "" & datepart("h", now()) & datepart("n", now()) & datepart("s", now()) '生成文件名
pict=trim(request.form("qm_pic")) '获取form提交过来的img
'分割字符串 base64 找到文件扩展名 picl(1)
picn=split(pict,";base64,")
picl=split(picn(0),"/")
picture=picn(1)
'response.write picn(1)
'response.write "
"
path="uploadimg_cscxj/" & filename & "."&picl(1) '存放路径
xmlstr=""&picture&""
dim xml : set xml=server.createobject("msxml2.domdocument")
dim stm : set stm=server.createobject("adodb.stream")
xml.resolveexternals=false
xml.loadxml(xmlstr)
xml.documentelement.setattribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
xml.documentelement.datatype = "bin.base64"
stm.type= 1'adtypebinary
stm.open
stm.write xml.documentelement.nodetypedvalue
stm.savetofile server.mappath(path)
stm.close
set xml=nothing
set stm=nothing
' 更新数据库,存储图片路径
set rs = server.createobject("adodb.recordset")
sql = "select * from [jccscxj] where cscxj_id = "&id&""
rs.open sql,conn,1,3
rs("cscxj_qm") = path
rs.update
rs.close
set rs = nothing
response.write("签名成功")
conn.close
set conn=nothing
%>
`
参考文章:https://blog.csdn.net/u011289462/article/details/128058690
发表评论