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

    UploadFile - העלאת קובץ בAPI

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

      שלום לכולם,

      מנסה להבין מהדקומנטציה איך להעלות קובץ לשלוחה ללא הצלחה 😞https://f2.freeivr.co.il/topic/55/api-גישת-מפתחים-למערכות/10

      מדובר בקובץ לא גדול - איך מעלים את הנתונים של הקובץ עצמו ? אני רואה פרטים מלאים על הקובץ רק בפיצול קובץ (כשמדובר על קובץ גדול) , בנוסף לא מכירה את שפת multipart/form-data אם מישהו יכול להעלות דוגמא לקריאה - יעזור לי מאד מאד!

      תודה רבה מראש

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

        @Freund נתוני הקובץ בגוף הPOST

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

          @Freund
          @amp-Software-0 כתב באיך מעלים קובץ שמע בAPI עם הפונקציה של שמואל?:

          ערכתי את הקוד של @שמואל לשימוש ציבורי
          זה הקוד
          function uploadFile($isPrivate, $token ,$path ,$file){ if ($isPrivate) { $YemotUrl = 'https://private.call2all.co.il/ym/api/'; } else { $YemotUrl = 'https://www.call2all.co.il/ym/api/'; } $headers = array( 'Content-type: multipart/form-data' ); $url = $YemotUrl . 'UploadFile'; $target = new CURLFile($file,'media/wav'); $parm['upload'] = $target; $parm['token'] = $token; $parm['path'] = $path . '/' . $target->getFilename(); $curl = curl_init(); curl_setopt_array( $curl, array( CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $parm, CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, ) ); $response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); $response = json_decode($response, true); return $response;}
          צריך לשלוח 4 פרמטרים isPrivate - ערך בוליאני אם המערכת בשרת פרייבט, token, path, ו- file - שם הקובץ להעלאה
          דוגמא
          uploadFile(false,'0773137770:2580','ivr2:/1','M1024.wav');

          בדוגמא הקובץ נמצא באותה תיקיה של קובץ ה php, במידה והקובץ להעלאה נמצא בתיקיה משנית (הנקראת לדגומא subFolder) יש להזין כך:
          uploadFile(false,'0773137770:2580','ivr2:/1','subFolder/M1024.wav');

          הפונקציה מחזירה אובייקט json עם נתוני הפעולה, ניתן לקבל אותו גם כסטרינג כמובן

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

            @Freund כתב בUploadFile - העלאת קובץ בAPI:

            בנוסף לא מכירה את שפת multipart/form-data

            multipart/form-data זו לא שפה זו צורת קידוד נתונים (משמשת בעיקר להגשת טפסים ב-POST)

            F תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • F
              Freund @צדיק תמים נערך לאחרונה על ידי

              אני ממש לא בקיאה בכלל בPHP מעלה את הנתונים מהדקומנטציה . מי שיוכל לפענח לי את השלבים לביצוע יעזור לי מאדדדד:

              כל השלבים האלו ברורים לי:

              token טוקן
              path נתיב להעלאה
              convertAudio המרת הקובץ
              autoNumbering
              tts

              מהשלבים הבאים לא ממש הבנתי מה אמורים לעשות...

              פיצול קובץ לחלקים נפרדים והעלאה לשרת
              שלב א' - העלאת הקבצים....

              היכן אני מכניסה את התוכן של הקובץ (content) בקובץ רגיל ולא כבד מהמותר?

              אם הבנתי נכון מ@eliyahu כל הההמשך רלוונטי רק לקבצים כבדים בשאלה דומה ששאלתי כאן...

              תודה גדולה מראש!

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

                @Freund לא שאני כ"כ מומחה, אבל השתמשתי כמה פעמים בAPI להעלאת קבצים ומה שצריך זה:

                1. לקרוא את תוכן הקובץ (הפקודה הזו קיימת בכל שפה). הקריאה בעצם הופכת את הקובץ למחרוזת בינארית.
                2. להכניס את המחרוזת הזו לגוף הPOST.
                3. את כל הפרמטרים (token וכו') לשרשר בURL

                אם מדובר בטקסט בלבד יותר קל להשתמש ב-UploadTextFile

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

                  @אופיר תודה על התגובה! מה השם של המפתח כשמעלים את התוכן של הקובץ?
                  ואם יש מצב לצילומסך / העתקה של קריאה לדוגמא יעזור לי מאד. תודה !

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

                    @Freund בלי מפתח
                    רק לא לשכוח לציין בכותרת multipart/form-data

                    יש לי דוגמה בVBA לא נראה לי שיעזור לך

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

                      @אופיר זה כל הBODY בעצם?

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

                        @Freund כן
                        אשמח לדעת אם הסתדרת

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

                          @אופיר לא הסתדרתי. לא הבנתי איזה פרמטרים בדיוק משרשרים בURL.. תודה!

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

                            @Freund
                            token path וכו'
                            לדוגמה:

                            https://www.call2all.co.il/ym/api/UploadFile?token=077266666666:123546&path=ivr2:4/000.wav
                            
                            F תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • F
                              Freund @אופיר נערך לאחרונה על ידי

                              @אופיר עדיין מקבלת הודעת שגיאה:

                              {
                              "responseStatus": "ERROR",
                              "message": "System error",
                              "messageCode": 105,
                              "yemotAPIVersion": 6,
                              "success": false
                              }
                              זה הURL ששלחתי:
                              https://www.call2all.co.il/ym/api/UploadFile?token=0231313XX:XXXX&path=ivr2:/100/000.wav

                              עם כותרתContent-Type multipart/form-data

                              ובbody את הcontent שהתקבל מget file content

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

                                יש מישהו? תודה מראשש

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

                                  @eliyahu יכול אולי לעזור? תודה גדולה מראש

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

                                    @Freund באיזו שפה את כותבת?

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

                                      @אופיר multipart/form-data אבל לא ברור לי בדיוק איזה פרמטרים צריך לשלוח.... ובינתיים שום קריאה לא הצליחה

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

                                        @Freund תוסיפי בתחילת הPOST:

                                        Content-Disposition: form-data; name="file"; filename=
                                        

                                        ושם הקובץ עם גרשיים. מעבר שורה ו:

                                        Content-Type: application/octet-stream
                                        

                                        מעבר שורה ותוכן הקובץ (ניסיתי עכשיו אצלי)

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

                                          @אופיר תוכל לשלוח את כל הקריאה? לא הבנתי בדיוק ... אני שולחת דרך POWER AUTOMATE [ברעיון כמו MAKE] תודה רבה

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

                                            @Freund כתב בUploadFile - העלאת קובץ בAPI:

                                            POWER AUTOMATE

                                            אני לא מכיר, אבל הנה הקוד ב-VBA. אפשר להעלות אותו ל-chatGPT ולבקש שיעשה לך את ההתאמה עבור הפלטפורמה הרצויה.

                                            
                                            Sub SendFileViaPost()
                                                Dim http As Object
                                                Dim fileStream As Object
                                                Dim boundary As String
                                                Dim data As String
                                                Dim url As String
                                                Dim filePath As String
                                                Dim fileName As String
                                                Dim fileContent As String
                                            
                                                ' הגדרת כתובת ה-URL
                                                url = "https://call2all.co.il/ym/api/UploadFile?token=077**מערכת*:**סיסמה**&path=ivr2:002.wav"
                                            
                                                ' הגדרת נתיב הקובץ
                                                filePath = "C:\Users\User\Desktop\בין כוכבים.wav"
                                                fileName = "בין כוכבים.wav"
                                            
                                                ' קריאת תוכן הקובץ
                                                Set fileStream = CreateObject("ADODB.Stream")
                                                fileStream.Type = 1 ' adTypeBinary
                                                fileStream.Open
                                                fileStream.LoadFromFile filePath
                                                fileContent = fileStream.Read
                                                fileStream.Close
                                                Set fileStream = Nothing
                                            
                                                ' יצירת גבול multipart
                                                boundary = "------------------------" & Format(Now, "YYYYMMDDHHMMSS")
                                            
                                                ' יצירת תוכן הבקשה
                                                data = "--" & boundary & vbCrLf
                                                data = data & "Content-Disposition: form-data; name=""file""; filename=""" & fileName & """" & vbCrLf
                                                data = data & "Content-Type: application/octet-stream" & vbCrLf & vbCrLf
                                                data = data & fileContent & vbCrLf
                                                data = data & "--" & boundary & "--"
                                            
                                                ' יצירת אובייקט HTTP
                                                Set http = CreateObject("MSXML2.XMLHTTP")
                                                http.Open "POST", url, False
                                                http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & boundary
                                            
                                                ' שליחת הבקשה
                                                http.Send data
                                            
                                                ' בדיקת התשובה
                                                If http.Status = 200 Then
                                                    MsgBox "ההעלאה הצליחה: " & http.responseText
                                                Else
                                                    MsgBox "Failed to upload file. Status: " & http.Status & " - " & http.statusText
                                                End If
                                            
                                                ' שחרור אובייקט
                                                Set http = Nothing
                                            End Sub
                                            
                                            
                                            F א 2 תגובות תגובה אחרונה תגובה ציטוט 0
                                            • פוסט ראשון
                                              פוסט אחרון