העלאת קובץ דרך VBA (ויזואל בייסיק)
-
מישהו מכיר כאן VBA?
כתבתי קוד בVBA להעלאת תוכן מגיליון מסוים באקסל, ללא הורדה למחשב.
כשניסיתי בקוד אחר לבצע רק הורדה למחשב זה עבד מעולה.
אבל כשאני עושה את הקוד הזה להעלאה באתר, הוא מחזיר לי שגיאה, ואני לא מצליח להבין מה בדיוק הנקודה שחסר.
את הטוקן והנתיב נשלח בGET והשאר בPOST.
אשמח לעזרה!' יצירת אובייקט HTTP Dim http As Object Set http = CreateObject("MSXML2.XMLHTTP.6.0") ' הגדרת URL Dim url As String url = "https://www.call2all.co.il/ym/api/UploadFile?token=" & token & "&path=" & path ' פתיחת חיבור ל-POST http.Open "POST", url, False ' הגדרת כותרת הבקשה http.setRequestHeader "Content-Type", "multipart/form-data" ' יצירת גבול גוף הבקשה Dim boundary As String boundary = "-----" & Format(Now, "yyyyMMddhhmmss") Dim body As String body = "--" & boundary & vbCrLf body = body & "Content-Disposition: form-data; name=""file""; filename=""IdListMessage.ini""" & vbCrLf body = body & "Content-Type: text/plain; charset=UTF-8" & vbCrLf & vbCrLf body = body & EncodeToUTF8(iniContent) & vbCrLf body = body & "--" & boundary & "--" & vbCrLf ' הגדרת אורך הגוף http.setRequestHeader "Content-Length", Len(body) ' שליחת הבקשה On Error GoTo ErrorHandler http.send body ' קבלת התגובה Dim response As String response = http.responseText ' הצגת התגובה MsgBox response ' שחרור האובייקט Set http = Nothing
בנוסף מוגדר פונקציה לקידוד נכון (כי חשבתי שיש בעיה בקידוד)
Function EncodeToUTF8(ByVal str As String) As String Dim arr() As Byte arr = StrConv(str, vbFromUnicode) EncodeToUTF8 = arr End Function