通用微博图片上传类
'*********************************************************************************** '***本程序可以自由传播,本人不对您使用本软件及代码造成的任何后果承担任何责任** '***利用此代码挣钱了也无需告诉我****** '***作者:龙小龙 QQ:31519488,部分代码来源于网络*** '***感谢中国农业人才网www.5ajob.com 大力支持*** '***中国农业人才网,让伯乐与千里马不再是偶遇*** '*********************************************************************************** ''' VB文件上传类,可以同时传多个文件 文字内容,也可以从网页上抓图片再上传 Public c_strDestURL As String Public c_strFileName As String Public c_strFieldName As String Public c_strBoundary As String Public c_strContentType As String ' text/plain or image/pjpeg and so on "application/upload" text/plain Public c_param As Dictionary '格式key->字段名 value->类型|属性|内容 '字段名 类型|属性|内容 '类型 目前有txt = 0 '文本pic = 1 '图片File = 2 '文件 URL = 3 '网址 '属性是类型下的属性 比如pic 下的属性就是文件格式pic jpg png等 'With c_param '.add "pic", "url|pic|http://www.xx.com/1.jpg" '.add "pic1", "pic|jpg|C:\Documents and Settings\Administrator\桌面\1.jpg" '.add "status", "txt|raw|大家好y" '.add "txtfile", "file|txt|C:\Documents and Settings\Administrator\桌面\1.txt" 'End With Public c_strResponseText As String Public c_boolPrepared As Boolean Public c_strErrMsg As String Private Type Field s_FieldName As String '字段名 s_FieldValue As String '字段值 s_FieldType As String '字段类型 s_FieldPro As String '字段属性 s_FieldCon As String '字段内容 End Type 'Private Enum FieldType 'txt = 0 '文本 'pic = 1 '图片 'File = 2 '文件 'URL = 3 '网址 'End Enum Public Sub Class_Initialize() c_strDestURL = "" c_strFileName = "" c_strContentType = "application/upload" c_strFieldName = "file" c_strBoundary = "---------------------------" & LCase(c10ton(Right("0" & Day(Date), 2) & Right("0" & Hour(Time), 2) & Right("0" & Minute(Time), 2) & Right("0" & Second(Time), 2), 16)) c_boolPrepared = False End Sub Public Sub Class_Terminate() End Sub ''' 公共调用函数,文件上传 Public Function vbsUpload() Call CheckRequirements If c_boolPrepared Then UploadFile c_strDestURL, c_param Else ' c_strErrMsg End If End Function ''' 检查程序工作环境 Private Function CheckRequirements() On Error Resume Next CreateObject ("MSXML2.XMLHTTP") If Not Err = 0 Then c_strErrMsg = c_strErrMsg & vbCrLf & Err.Descriptiof Else c_boolPrepared = True End If End Function ''' 文件上传 Private Function UploadFile(ByVal DestURL As String, ByVal param As Dictionary) Boundary = c_strBoundary bFormData = BuildFormData(Boundary, param) ' Debug.Print rsBinarytoString(bFormData) WinHTTPPostRequest DestURL, bFormData, Boundary End Function ''' WinHTTPPostRequest Private Function WinHTTPPostRequest(URL, FormData, Boundary) Dim xmlhttp Set xmlhttp = CreateObject("MSXML2.XMLHTTP") On Error Resume Next xmlhttp.open "POST", URL, False xmlhttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + Boundary xmlhttp.send FormData c_strResponseText = xmlhttp.responseText ' 服务端返回信息 Set xmlhttp = Nothing End Function '''组合上传数据包 multipart/form-data document Header + Content Private Function BuildFormData(ByVal Boundary As String, ByVal param As Dictionary) Dim FileContents() As Byte, FormData() As Byte Dim Pre As String Dim Po As String ' Boundary = c_strBoundary Const adlongvarbinary = 205 Dim rs: Set rs = CreateObject("ADODB.Recordset") rs.Fields.Append "b", adlongvarbinary, 100 rs.open rs.AddNew Pre = "--" '+ Boundary + vbCrLf ' Debug.Print Pre; FormData = SaveStringToByteArry(Pre) rs("b").AppendChunk (FormData) Dim i As Integer, t As Integer Dim tempstr As String, FieldVaue As String For i = 0 To param.Count - 1 two = IIf(t > 0, vbCrLf & "--", "") '如果有1个以上的字段,中间的就要多2个--,很关键,否则只能传成功1个文件. Dim sField As Field, aFieldVaue With sField .s_FieldName = param.Keys(i) .s_FieldValue = param.Items(i) If InStr(.s_FieldValue, "|") = 0 Then .s_FieldValue = "txt|raw|" & .s_FieldValue End If aFieldVaue = Split(.s_FieldValue, "|") .s_FieldType = aFieldVaue(0) .s_FieldPro = aFieldVaue(1) .s_FieldCon = aFieldVaue(2) ' MsgBox .s_FieldName Select Case LCase(.s_FieldType) Case "txt" ' Select Case LCase(.s_FieldPro) ' Case "raw" ' .s_FieldCon = UTF8Encode(.s_FieldCon) ' Case Else ' End Select tempstr = txtFields(.s_FieldName, two & Boundary) FormData = SaveStringToByteArry(tempstr) '二进制头 rs("b").AppendChunk (FormData) FormData = stream_StringtoBinary(.s_FieldCon, "UTF-8") rs("b").AppendChunk (FormData) tempstr = vbCrLf '后面有个回车 FormData = SaveStringToByteArry(tempstr) '二进制头 rs("b").AppendChunk (FormData) Case "pic", "file" FileContents = GetFile(.s_FieldCon) ' 二进制文件内容 Select Case LCase(.s_FieldPro) Case "gif" ContentType = "image/gif" Case "jpg" ContentType = "image/pjpeg" Case "png" ContentType = "image/x-png" Case "txt" ContentType = "application/upload" Case Else ContentType = "image/unknow" End Select tempstr = mpFields(.s_FieldName, .s_FieldCon, ContentType, two & Boundary) FormData = SaveStringToByteArry(tempstr) '二进制文件头 rs("b").AppendChunk (FormData) rs("b").AppendChunk (FileContents) '二进制文件本身 Case "url" '抓取网页上的图片 If SaveRemoteFile2Bin(.s_FieldCon, FileContents) = True Then ContentType = "image/unknow" tempstr = mpFields(.s_FieldName, .s_FieldCon, ContentType, two & Boundary) FormData = SaveStringToByteArry(tempstr) '二进制文件头 rs("b").AppendChunk (FormData) rs("b").AppendChunk (FileContents) '二进制文件本身 End If End Select End With t = t + 1 Next Po = vbCrLf + "--" + Boundary + "--" + vbCrLf ' FormData = SaveStringToByteArry(Po) rs("b").AppendChunk (FormData) rs.Update BuildFormData = rs("b") rs.Close End Function 'Converts OLE string To multibyte string Private Function StringToMB(ByVal sCon As String) Dim i, tempstr For i = 1 To Len(sCon) tempstr = tempstr & ChrB(Asc(Mid(sCon, i, 1))) Next StringToMB = tempstr End Function ''' 组织HTTP头 Private Function mpFields(ByVal FieldName As String, ByVal FileName As String, ByVal ContentType As String, ByVal Boundary As String) Dim MPTemplate 'template For multipart header MPTemplate = "{boundary}" + vbCrLf + "Content-Disposition: form-data; name=""{field}"";" + _ " filename=""{file}""" + vbCrLf + _ "Content-Type: {ct}" + vbCrLf + vbCrLf Dim Out Out = Replace(MPTemplate, "{field}", FieldName) Out = Replace(Out, "{file}", FileName) Out = Replace(Out, "{boundary}", Boundary) mpFields = Replace(Out, "{ct}", ContentType) End Function Private Function txtFields(ByVal FieldName As String, ByVal Boundary As String) txtContentTemplate = "{boundary}" + vbCrLf + "Content-Disposition: form-data; name=""{0}""" + vbCrLf + vbCrLf Dim Out Out = Replace(txtContentTemplate, "{0}", FieldName) Out = Replace(Out, "{boundary}", Boundary) txtFields = Out End Function ''' 二进制载入文件内容 Private Function GetFile(ByVal FileName As String) Dim Stream: Set Stream = CreateObject("ADODB.Stream") Stream.Type = 1 'Binary Stream.open Stream.LoadFromFile FileName GetFile = Stream.Read Stream.Close End Function Function SaveRemoteFile2Bin(ByVal RemoteFileUrl As String, ByRef RemoteFileCon() As Byte) As Boolean ' 保存远程文件 On Error Resume Next Dim ARetrieval, GetRemoteData Set Retrieval = CreateObject("MSXML2.XMLHTTP") With Retrieval .open "Get", RemoteFileUrl, False, "", "" .send RemoteFileCon = .responseBody SaveRemoteFile2Bin = True End With If Err.Number <> 0 Then Err.Clear SaveRemoteFile2Bin = False Exit Function End If Set Retrieval = Nothing End Function
相关推荐
YOLOv12:以注意力为中心的实时目标检测器
GO语言基础语法指令教程
MATLAB代码实现:分布式电源接入对配电网运行影响深度分析与评估,MATLAB代码分析:分布式电源接入对配电网运行影响评估,MATLAB代码:分布式电源接入对配电网影响分析 关键词:分布式电源 配电网 评估 参考文档:《自写文档,联系我看》参考选址定容模型部分; 仿真平台:MATLAB 主要内容:代码主要做的是分布式电源接入场景下对配电网运行影响的分析,其中,可以自己设置分布式电源接入配电网的位置,接入配电网的有功功率以及无功功率的大小,通过牛顿拉夫逊法求解分布式电源接入后的电网潮流,从而评价分布式电源接入前后的电压、线路潮流等参数是否发生变化,评估配电网的运行方式。 代码非常精品,是研究含分布式电源接入的电网潮流计算的必备程序 ,分布式电源; 配电网; 接入影响分析; 潮流计算; 牛顿拉夫逊法; 电压评估; 必备程序。,基于MATLAB的分布式电源对配电网影响评估系统
三相光伏并网逆变器:Mppt最大功率跟踪与800V中间母线电压的电力转换技术,三相光伏并网逆变器:实现最大功率跟踪与800V中间母线电压的优化处理,三相光伏并网逆变器 输入光伏Mppt 最大功率跟踪中间母线电压800V 后级三相光伏并网逆变器 ,三相光伏并网逆变器; 输入光伏Mppt; 最大功率跟踪; 中间母线电压800V; 后级逆变器,三相光伏并网逆变器:MPPT最大功率跟踪800V母线电压
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
西门子博途三部十层电梯程序案例解析:基于Wincc RT Professional V14及更高版本的应用探索,西门子博途三部十层电梯程序案例解析:基于Wincc RT Professional画面与V14及以上版本技术参考,西门子1200博途三部十层电梯程序案例,加Wincc RT Professional画面三部十层电梯程序,版本V14及以上。 程序仅限于参考资料使用。 ,西门子;1200博途;三部十层电梯程序案例;Wincc RT Professional;V14以上程序版本。,西门子V14+博途三部十层电梯程序案例:Wincc RT Pro专业画面技术解析
基于舆情数据的知识图谱推荐可视化系统论文,全原创,免费分享
基于Vivado源码的AM包络检调制解调与FIR滤波器设计在FPGA上的实现,基于Zynq-7000和Artix-7系列的AM包络检调制解调源码及Vivado环境下的实现,AM包络检调制解调,Vivado源码 FPGA的AM调制解调源码,其中FIR滤波器根据MATLAB设计。 【AM_jietiao】文件是基于zynq-7000系列,但没有涉及AD与DA,只是单纯的仿真。 【AM包络检调制解调_Vivado源码】文件基于Artix-7系列,从AD读入信号后,进行AM调制,并解调DA输出。 ,AM包络检调制解调;Vivado源码;FPGA;AM调制解调源码;FIR滤波器;MATLAB设计;Zynq-7000系列;Artix-7系列;AD读入信号;DA输出,AM包络调制解调源码:Zynq-7000与Artix-7 FPGA的不同实现
yugy
2025山东大学:DeepSeek应用与部署(部署方案大全+API调用+业务应用)-80页.pptx
chromedriver-mac-x64-135.0.7023.0(Dev).zip
基于单片机protues仿真的433MHz无线模块编解码收发通信测试(仿真图、源代码) 该设计为单片机protues仿真的433MHz无线模块收发通信测试; 1、433M超再生收发模块; 2、在仿真图中是把发射MCU的P2_7腿直接输入到接收MCU的INT0实现编码解码的; 3、通过433MHz无线模块实现无线通信的编解码功能; 4、按键控制指令; 5、液晶屏显示收发状态和信息;
资源说说明; 自带文件管理 adb操作以及应用管理等等的功能。 操作性对比其他应用较好。 参阅博文: https://blog.csdn.net/mg668/article/details/145689511?spm=1001.2014.3001.5352
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
智慧图书管理系统(源码+数据库+论文)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 本系统分为读者、管理员2个角色 读者可以进行注册登录、浏览图书以及留言、图书借阅、图书归还、图书续借、个人中心、论坛交流、等功能 管理员可以进行读者管理、图书管理、论坛论坛回复管理、图书借阅管理(下架、库存管理、修改、删除)、轮播图管理 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
三相APFC电路与单相Boost PFC电路仿真模型:电压外环电流内环双闭环控制研究,三相电路仿真模型:探索APFC电路、单相PFC电路及BoostPFC电路的动态特性与双闭环控制策略,APFC电路,单相PFC电路,单相BoostPFC电路仿真模型。 网侧220V 50Hz,输出电压设置为50Hz。 电压外环电流内环双闭环控制仿真模型 ,APFC电路; 单相PFC电路; 单相BoostPFC电路仿真模型; 网侧电压; 220V 50Hz; 输出电压50Hz; 电压外环电流内环双闭环控制仿真模型。,基于APFC电路的单相Boost PFC仿真模型:网侧电压220V/50Hz下电压电流双闭环控制的研究与应用
MATLAB环境下ADMM算法在分布式调度中的应用:比较并行与串行算法(Jocobi与Gaussian Seidel)的优化效果与实现细节——基于YALMIP和GUROBI的仿真平台复刻参考文档的研究结果。,MATLAB下ADMM算法在分布式调度中的并行与串行算法应用:基于YALMIP与GUROBI的仿真研究,MATLAB代码:ADMM算法在分布式调度中的应用 关键词:并行算法(Jocobi)和串行算法(Gaussian Seidel, GS) 参考文档:《主动配电网分布式无功优化控制方法》《基于串行和并行ADMM算法的电-气能量流分布式协同优化》 仿真平台:MATLAB YALMIP GUROBI 主要内容:ADMM算法在分布式调度中的应用 复刻参考文档 ,关键词:ADMM算法; 分布式调度; 并行算法(Jocobi); 串行算法(Gaussian Seidel, GS); MATLAB代码; YALMIP; GUROBI; 主动配电网; 无功优化控制方法; 能量流分布式协同优化。,MATLAB实现:ADMM算法在分布式调度中的并行与串行优化应用
“考虑P2G、碳捕集与碳交易机制的综合能源系统优化调度模型研究”,考虑电转气P2G与碳捕集设备的热电联供综合能源系统优化调度模型研究(含碳交易机制与四种算例场景分析),考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 摘要:代码主要做的是一个考虑电转气P2G和碳捕集设备的热电联供综合能源系统优化调度模型,模型耦合CHP热电联产单元、电转气单元以及碳捕集单元,并重点考虑了碳交易机制,建立了综合能源系统运行优化模型,与目前市面上的代码不同,本代码完全复现了文档中所提出的四种算例场景,没有对比算例,买过去也没有任何意义,四种算例主要包括: 1)t不包括P2G、CCS、以及碳交易 2)t包括P2G,但是不包括CCS以及碳交易 3)t包括P2G和CCS,但是不包括碳交易 4)t包括P2G、CCS以及碳交易 且最终的实现效果与文档进行对比后,虽然数值无法100%一致,但是结果以及数值曲线,几乎完全一样,此版本为目前市面上最好的园区综合能源调度代码,没有之一 ,考虑电转气(P2G); 碳捕集设备; 热电联供综合能源系统; 优化调度模型; 碳交易机制; CHP热电联产单元; 耦合模型; 算
FS-LDM培训材料(DAY_2)_NCR数据仓库事业部.ppt
专题 平面向量的数量积(学生版)20250222.pdf