• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    העלאת קובץ דרך VBA (ויזואל בייסיק)

    פורום מפתחים API
    5
    11
    209
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • י
      יב נערך לאחרונה על ידי

      מישהו מכיר כאן 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
      
      א 2 תגובות תגובה אחרונה תגובה ציטוט 0
      • א
        אופיר @יב נערך לאחרונה על ידי

        @יב
        הסתדרת כבר?
        נתקלתי בבעיה דומה, אשמח לשמוע פיתרון...

        י תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • י
          יב @אופיר נערך לאחרונה על ידי

          @אופיר האמת שעדיין לא.
          נראה לי שצריכים לעשות הורדה למחשב לקובץ זמני. (לדוגמא; שם הקובץ + temp) - ולהעלות את הקובץ מהמחשב (ללא temp) - ולמחוק את הקובץ אחר כך.
          עדיין לא ניסיתי, אבל נראה לי שזה הדרך הבטוחה.
          לכאורה אמור להיות דרך יותר ישירה.

          א תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • א
            אופיר @יב נערך לאחרונה על ידי

            @יב ראית את האקסס של אריה? זה בנוי על VBA!!!

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • י
              יב נערך לאחרונה על ידי

              @אופיר ראיתי.
              אבל נראה לי זה משהו אחר.
              תנסה לשאול כאן.

              א א 2 תגובות תגובה אחרונה תגובה ציטוט 0
              • א
                אופיר @יב נערך לאחרונה על ידי

                @יב אני בנטפרי שחסום, אם תשאל אשמח לקבל תשובה. זה יעזור לי מאוד במיידי..
                עברתי קצת על האקסס ההוא וזה דווקא נראה לי בדיוק מה שאנחנו צריכים רק הרבה יותר מסובך... כי הוא שילב את זה עם עוד הרבה דברים.

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • א
                  אשמח לעזור @יב נערך לאחרונה על ידי אשמח לעזור

                  @יב תישאלו כאן יענו לכם שם די מהר!!

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • א
                    אופיר @יב נערך לאחרונה על ידי אופיר

                    @יב יש כאן קובץ שהעלה @amp-Software-0 ובו קוד VBA מוכן להעלאת כל קובץ למערכת. בהנאה...
                    אגב, לכותב האלוף @amp-Software-0 ; אשמח ליצור איתך קשר אני מעוניין ללמוד ממך (בתשלום) איך בדיוק עשית את הקוד הזה (יש לי את היסודות של VBA אבל אני לא מכיר את כל הפונקציות) אשמח שתציין איך ניתן ליצור איתך קשר. תודה רבה רבה

                    A י 2 תגובות תגובה אחרונה תגובה ציטוט 0
                    • A
                      amp Software 0 @אופיר נערך לאחרונה על ידי

                      פוסט זה נמחק!
                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • ע
                        עידו נערך לאחרונה על ידי

                        קטע, הייתי בטוח שויזואל בייסיק ז"ל מזמן...

                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • י
                          יב @אופיר נערך לאחרונה על ידי

                          @אופיר
                          הקובץ אקסס של @amp-Software-0 זה העלאה מהמחשב (קובץ מקומי).
                          אני דיברתי על העלאה ישירה מתוך גיליון של אקסל, ללא הורדה למחשב, זה עדיין אינני יודע איך לעשות

                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • פוסט ראשון
                            פוסט אחרון