一.把图片转换成二进制等,再存入DB

1. byte 转成 base64

Private Function encodeBase64(ByRef arrData() As Byte) As StringDim objXML As MSXML2.DOMDocumentDim objNode As MSXML2.IXMLDOMElementSet objXML = New MSXML2.DOMDocumentSet objNode = objXML.createElement("b64")objNode.DataType = "bin.base64"objNode.nodeTypedValue = arrDataencodeBase64 = objNode.TextSet objNode = NothingSet objXML = Nothing
End Function

2. base64 转成 byte

Private Function decodeBase64(ByVal strData As String) As Byte()Dim objXML As MSXML2.DOMDocumentDim objNode As MSXML2.IXMLDOMElementSet objXML = New MSXML2.DOMDocumentSet objNode = objXML.createElement("b64")objNode.DataType = "bin.base64"objNode.Text = strDatadecodeBase64 = objNode.nodeTypedValueSet objNode = NothingSet objXML = Nothing
End Function

3. image 转成 type

Public Function ReadFile(ByVal strPath As String) As Byte()Dim intFile As IntegerintFile = FreeFileOpen strPath For Binary Access Read As intFileReDim ReadFile(LOF(intFile) - 1)Get intFile, , ReadFileClose intFile
End Function

4. 调用以上函数,把image 转成 base64, 存SQL server数据库的nvarchar(max)类型即可。

Dim s, Base64Encoded As String
Dim p() As BytePrivate Sub cmdAttachment_Click()On Error GoTo ErrHandlerComDlgLegal.ShowOpengstrImagePath = ComDlgLegal.FileNamep = ReadFile(gstrImagePath)s = encodeBase64(p())Exit Sub
ErrHandler:Screen.MousePointer = vbDefaultMsgBox Me.Name & " : cmdAttachment_Click " & vbCrLf & CStr(Err.Number) & " - " & Err.Description
End Sub

二. 把jpg复制到指定的文件夹里,然后DB存文件的路径

(可以参考 VB6的关于文件和文件夹的函数)

1.点击‘attachment’按钮时,拿到图片的路径,此时可以预览图片,当点击‘save’按钮时,如果路径不为空,则复制图片到指定位置,同时重命名

    ComDlgLegal.Filter = "Apps (*.jpg)|*.jpg|All files (*.*)|*.*"ComDlgLegal.DefaultExt = "jpg"ComDlgLegal.DialogTitle = "Select File"ComDlgLegal.ShowOpenIf ComDlgLegal.FileName <> "" And UCase(Right(ComDlgLegal.FileName, 4)) = ".JPG" ThengstrImagePath = ComDlgLegal.FileNamecmdView.Enabled = TruecmdAttachDelete.Visible = TruefblnDefaulterLegalChange = TrueElseIf ComDlgLegal.FileName <> "" And UCase(Right(ComDlgLegal.FileName, 4)) <> ".JPG" ThenMsgBox "Only .jpg file can be attached.", vbInformation, "Defaulter Legal Attachment"End If
        If gstrImagePath <> "" ThenSet rstCheckDefaulter = gcnn.Execute("select max(id) from TBCU_Defaulter_legal where defaulter_id=" & gDefaulterSysId)glngLegalId = rstCheckDefaulter(0)strPath = App.Path & "\Attachment\Attachment_legal\" & strDate & "_" & glngLegalId & ".jpg"FileCopy gstrImagePath, strPathstrUpdateAttach = "update TBCU_Defaulter_legal set attachment_legal='" & strPath & "' where id=" & glngLegalIdgcnn.Execute (strUpdateAttach)End If

2.如果是edit,加载时拿到图片路径命名为exist,(如果点击‘attachment’按钮,则拿到新图片路径,)可以预览,点击‘save’按钮时,如果exist不为空,则删除已经存在的图片,然后再存入新的路径strPath。

        If rstLegal("attachment_legal") <> "" ThenstrExistPath = rstLegal("attachment_legal")gstrImagePath = rstLegal("attachment_legal")cmdView.Enabled = TruecmdAttachDelete.Visible = TrueEnd If
        If strExistPath <> "" Then Kill strExistPathIf gstrImagePath <> "" ThenstrPath = App.Path & "\Attachment\Attachment_legal\" & strDate & "_" & glngLegalId & ".jpg"FileCopy gstrImagePath, strPathElsestrPath = ""End If

如果点击‘X’按钮,则路径为空,点击‘save’按钮,exist不为空,则删除旧图片,然后存空字段strPath。

Private Sub cmdAttachDelete_Click()fblnDefaulterLegalChange = TruegstrImagePath = ""cmdView.Enabled = FalsecmdAttachDelete.Visible = False
End Sub

3.当删除整个记录时,也要记得把attachment删掉

FileExists = IIf(Dir(App.Path & "\Attachment\DefaulterModule\Attachment_legal\*_" & fgLegalList.TextMatrix(lngRow, 0) & ".jpg") <> "", True, False)
If FileExists Then Kill App.Path & "\Attachment\DefaulterModule\Attachment_legal\*_" & fgLegalList.TextMatrix(lngRow, 0) & ".jpg"

三.其它

1.可以把图片复制到指定位置,也可以先复制到指定位置,再重命名为更合适的名字

    ComDlgLegal.ShowOpengstrImagePath = ComDlgLegal.FileNamestrTestPath = "D:\Attachment_legal\" & strDate & "_" & glngLegalId & ".jpg" 'method 1FileCopy gstrImagePath, strTestPath'    strTestPath = "D:\Attachment_legal\legal_test.jpg" 'method 2
'    FileCopy gstrImagePath, strTestPath
'    Name strTestPath As "D:\Attachment_legal\" & strDate & "_" & glngLegalId & ".jpg" 'rename file

2.复制图片时,先检测同样名字的图片是否存在,如果存在,系统自动给新图片加序号

      strPath = App.Path & "\Attachment\Attachment_legal\" & strDate & ".jpg"FileExists = IIf(Dir(strPath) <> "", True, False)If FileExists ThenstrPath = App.Path & "\Attachment\Attachment_legal\" & strDate & "(" & i & ").jpg"i = i + 1End If

3.一个lable显示图片的路径,可以用来检测图片的后缀是不是.jpg

    If UCase(Right(lblAttachment.Caption, 4)) = ".JPG" ThencmdPreview.Enabled = TrueElsecmdPreview.Enabled = FalseEnd If

VB6总结之添加附件(jgp等)相关推荐

  1. mutt使用小技巧 指定发件人 添加附件

    经常我们需要从linux服务器上直接发送一些邮件到自己,或者用户的邮箱里,mail命令固然重要,但是缺点是不能方便的进行插入附件.这里选择使用mutt,方便又好用. 实例: echo "邮件 ...

  2. 在leangoo 里怎么设置工作量估算,添加附件,设置截止时间?

    工作量估算: 点击卡片面板上的工作量估算按钮,可以给卡片设置工作量估计值.如果是敏捷开发,这个估计值通常代表的是故事点数.如果是一般的任务管理,我们可以使用这个代表工时或人天.这个估算值将用于燃尽图. ...

  3. JSP中动态添加 “添加附件选择框”

    <script language="javascript"> iIndex = 0; var annex = 0; function getIndex() { iInd ...

  4. java 发送邮件添加附件_java邮件自动发送时添加网络附件

    查了很多资料都是使用本地资源作为附件发送.但是数据和程序分开时,还需要先下载数据,保存到本地再发送邮件.查了很多资料后,发现apach提供了很好的一个commons-mail.jar包,做了很好的封装 ...

  5. email 添加附件 java_Java发送email 带附件 | 学步园

    package com.chengxi.jm.test; import java.util.Properties; /*** * 邮件发送的参数类 * * @author wzh * @version ...

  6. 秀米怎么添加附件链接,如Word、Excel、Pdf等

    今天公司的运营小妹问我,使用秀米编辑公众号文章时,怎么给推文添加附件链接.因为秀米属于第三方的编辑器,跟公众号原生编辑器还是不一样的,所以添加附件链接的操作也是不一样的.下面详细说一下吧,让大家对公众 ...

  7. 微信公众号文章怎么添加附件|详细教程讲解,太实用了!

    公众号运营,涉及文字编写.图片制作美化,标题撰写等等,其中比较重要的一环是,在公众号文章中插入附件(附件:word文件.excel表格.pdf文件.zip压缩文件.txt文件等).公众号在每一次的发布 ...

  8. 如何在微信公众号正文中添加附件?

    随着微信对我们生活.学习.工作的渗入,微信公众号越来越成为我们获取信息的来源,也更加成为事业单位.学校.自媒体的展示平台.由此衍生出很多围绕公众号打造的生态技术,如文章排版.智能翻译.智能语音.公众号 ...

  9. 如何在微信公众号文章中怎么添加附件?

    最近不少运营朋友遇到难题,需要微信文章添加附件下载,使用某些网盘却不方便用户使用,有没有什么方便的办法呢? 还真有!可以使用"附件无忧"小程序,轻松几步就可以解决! 一.使用最新电 ...

最新文章

  1. 按摩加快肌肉修复有科学依据了,哈佛大学研究成果登Science子刊
  2. 一个调用其他activity的完整例子,使用了 onActivityResult和startActivityForResult
  3. 你真的了解扩展方法吗?
  4. secucrecrt配置文件导入和保存
  5. self计算机语言,python中self在函数中如何使用
  6. Recursive Depth first search graph(adj matrix)
  7. java zk监听异步_zk事件的监听和处理2
  8. 本地mongochef连接其他计算机上的数据库认证失败解决方法
  9. mini LED 背光驱动芯片的发展
  10. Android动态换肤框架PrettySkin原理篇(一)- LayoutInflater的理解及使用
  11. win10计算机还原点如何创建,win10系统创建还原点及系统还原的操作方法
  12. 图形渲染——伽马矫正
  13. 关系数据库、关系代数和关系运算
  14. 无人驾驶算法学习(七):基于事件的视觉里程计
  15. rpm mysql 忘记密码_centos7 yum安装mysql5.7并在root密码忘记的情况下重设密码
  16. discuz模板文件列表
  17. 各种搜索引擎算法研究
  18. python将图像保存为pdf及图片
  19. 【Bug】台式电脑主机连接小米电视,选择HDMI后无信号,解决办法
  20. html怎么去掉已经默认的背景,css该怎么去掉背景颜色

热门文章

  1. crashlands中文安卓下载_崩溃大陆游戏下载-崩溃大陆最新安卓版下载-MC中文下载...
  2. html 网页播放音乐
  3. 分类——逻辑回归Python实现
  4. IntentFilter功能简介
  5. 一分钟带你了解,JVS是什么?
  6. 计算机电子表格的相关试题,计算机考试电子表格模拟试题
  7. Android使用沉浸式导航栏
  8. gMIS吉密斯十年执念:Lower Costs较低成本Better Productivity较高效率
  9. 智能小车之PWM脉冲控制小车调速
  10. Android 对接硬件串口篇