gpt4 book ai didi

excel - 在 VBA 中使用 curl 上传图像

转载 作者:行者123 更新时间:2023-12-04 20:25:47 24 4
gpt4 key购买 nike

我已经在一个支持 API 的网站上注册,并且我已经测试了 CURL 命令行,它对我来说很好用

curl --location --request POST "https://api.imgbb.com/1/upload?key=APIKEY" --form "image=iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="

这是 API 信息页面
https://api.imgbb.com/

我对如何使用 excel VBA 发送等效命令行一无所知?我对这些东西完全陌生,我搜索了很多,但不知道事情是怎么回事

我发现这个链接可能会有所帮助,但它在 VB.NET 中
Help with Imgur API and VB.NET - Image POST

** 现在我得到了解决方案,并且我已经开发了它
Sub Test()
Dim v As Double, sPath As String, sAPIKey As String, sBase64 As String, cmd As String

sPath = ThisWorkbook.Path & "\Result.txt"
sAPIKey = "APIKEY"
sBase64 = ConvertFileToBase64(ThisWorkbook.Path & "\Logo.png")

cmd = Replace(Replace("curl --location --request POST ""https://api.imgbb.com/1/upload?key=¤"" --form ""image=$"" -o ", "¤", sAPIKey), "$", sBase64) & sPath
v = Shell(cmd)
Debug.Print cmd & " Completed" & vbCr & "Process " & v
End Sub

Public Function ConvertFileToBase64(strFilePath As String) As String
Const UseBinaryStreamType = 1

Dim streamInput: Set streamInput = CreateObject("ADODB.Stream")
Dim xmlDoc: Set xmlDoc = CreateObject("Microsoft.XMLDOM")
Dim xmlElem: Set xmlElem = xmlDoc.CreateElement("tmp")

streamInput.Open
streamInput.Type = UseBinaryStreamType
streamInput.LoadFromFile strFilePath
xmlElem.DataType = "bin.base64"
xmlElem.NodeTypedValue = streamInput.Read
ConvertFileToBase64 = Replace(xmlElem.Text, vbLf, "")

Set streamInput = Nothing
Set xmlDoc = Nothing
Set xmlElem = Nothing
End Function

这适用于小尺寸,但不适用于大尺寸..example 我有一个 Logo.png,大小为 545KB,但失败了。虽然其他较小的图像上传得很好

我已经手动尝试过,它也失败了。似乎 cms 窗口允许的字符数有限制,所以我无法在命令行中获取所有 base64 字符串
enter image description here

最佳答案

您可以使用Shell

Sub mycurl()

Dim var As Double, cmd As String
cmd = "curl -I ""https://api.imgbb.com/"" -o imgbb.txt" ' head only
var = Shell(cmd)
MsgBox cmd & " completed" & vbCr & "Process " & var

End Sub

看起来 API 接受二进制文件,所以不需要 base64 编码。尝试

cmd = "curl --location --request POST ""https://api.imgbb.com/1/upload?" & _
"key=" & sAPIKey & """ " & _
"--form image=@""/path/Logo.png"" -o " & sPath & "/response.json"



关于excel - 在 VBA 中使用 curl 上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60786992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com